এক্সপ্রেশন হলো একটি প্যাটার্ন যা ইনপুট টেক্সটের সাথে ম্যাচ করা যেতে পারে। .Net ফ্রেমওয়ার্ক একটি রেগুলার এক্সপ্রেশন ইঞ্জিন প্রদান করে যা সেরকম ম্যাচিং অনুমতি দেয়। একটি প্যাটার্ন এক বা একাধিক ক্যারেক্টার লিটারেল, অপারেটর, বা কনস্ট্রাক্ট নিয়ে গঠিত।
RegEx দ্বারা ব্যবহৃত বেসিক প্যাটার্ন মেটাক্যারেক্টারগুলো:
* = শূন্য বা অধিক ? = শূন্য বা এক ^ = না [] = রেঞ্জ
^ সিম্বল NOT কন্ডিশন নির্দিষ্ট করতে ব্যবহৃত হয়।
[] ব্র্যাকেটে রেঞ্জ ভ্যালু দিতে হয় যেমন 0-9 বা a-z বা A-Z।
Char.IsDigit() ব্যবহার করে
উদাহরণ
using System;
namespace DemoApplication
{
public class Program
{
static void Main(string[] args)
{
string str1 = "123string456";
string str2 = string.Empty;
int val = 0;
Console.WriteLine($"String with number: {str1}");
for (int i = 0; i < str1.Length; i++)
{
if (Char.IsDigit(str1[i]))
str2 += str1[i];
}
if (str2.Length > 0)
val = int.Parse(str2);
Console.WriteLine($"Extracted Number: {val}");
Console.ReadLine();
}
}
}
আউটপুট
String with number: 123string456 Extracted Number: 123456
উপরের উদাহরণে আমরা স্ট্রিং str1-এর সকল ক্যারেক্টার লুপ করছি। Char.IsDigit() যাচাই করে যে নির্দিষ্ট ক্যারেক্টারটি নম্বর কিনা এবং সেটিকে একটি নতুন স্ট্রিংয়ে যোগ করে যা পরে নম্বরে পার্স করা হয়।
Regex ব্যবহার করে
উদাহরণ
using System;
using System.Text.RegularExpressions;
namespace DemoApplication
{
public class Program
{
static void Main(string[] args)
{
string str1 = "123string456";
string str2 = string.Empty;
int val = 0;
Console.WriteLine($"String with number: {str1}");
var matches = Regex.Matches(str1, @"\d+");
foreach(var match in matches)
{
str2 += match;
}
val = int.Parse(str2);
Console.WriteLine($"Extracted Number: {val}");
Console.ReadLine();
}
}
}
আউটপুট
String with number: 123string456 Extracted Number: 123456
উপরের উদাহরণে, আমরা রেগুলার এক্সপ্রেশন (\d+) ব্যবহার করে স্ট্রিং str1 থেকে শুধু নম্বরগুলো এক্সট্র্যাক্ট করেছি।