عبارات منظم (Regular Expressions) در زبان سی شارپ
عبارت منظم الگویی است که می تواند با یک ورودی متن تطبیق یابد. هر الگو شامل یک یا چند حرف، عملگر و یا ساختار است.
ساختارهایی برای تعریف عبارات منظم
دسته های مختلفی از کاراکترها، عملگرها و ساختارها وجود دارند که امکان تعریف عبارت منظم را فراهم می کنند. برای مشاهده این ساختارها می توانید از لینک های زیر استفاده کنید.
- Character escapes
- Character classes
- Anchors
- Grouping constructs
- Quantifiers
- Backreference constructs
- Alternation constructs
- Substitutions
- Miscellaneous constructs
کلاس Regex
کلاس Regex برای نمایش یک عبارت منظم استفاده می شود. در زیر متدهای رایج این کلاس را مشاهده می کنید:
ردیف | توضیحات |
۱ | public bool IsMatch(string input)
تطبیق عبارت منظم مشخص شده در سازنده کلاس Regex با رشته ورودی را بررسی می کند. در صورت مطابقت داشتن true باز میگرداند. |
۲ | public bool IsMatch(string input, int startat)
تطبیق عبارت منظم مشخص شده در سازنده کلاس Regex با رشته ورودی را بررسی می کند. در صورت مطابقت داشتن true باز میگرداند. بررسی را از موقعیت مشخص شده شروع می کند. |
۳ | public static bool IsMatch(string input, string pattern)
بررسی می کند که آیا رشته ورودی با الگوی داده شده مطابقت دارد یا خیر. |
۴ | public MatchCollection Matches(string input)
رشته ورودی را برای تمام رخدادهای عبارت منظم مشخص شده در سازنده کلاس Regex جستجو می کند. |
۵ | public string Replace(string input, string replacement)
در رشته ورودی همه رشته هایی که با عبارت منظم مشخص شده در سازنده مطابقت دارند را با پارامتر دوم (replacement) جایگزین می کند. |
۶ | public string[] Split(string input)
رشته ورودی را با توجه به عبارت منظم مشخص شده در سازنده، به آرایه ای از رشته ها تبدیل می کند. |
برای مشاهده لیست کامل متدها و پراپرتی های این کلاس، به مستندات مایکروسافت مراجعه کنید.
مثال ۱
مثال زیر کلماتی که با حرف ‘S’ شروع می شوند را تطبیق می دهد:
using System; using System.Text.RegularExpressions; namespace RegExApplication { class Program { private static void showMatch(string text, string expr) { Console.WriteLine("The Expression: " + expr); MatchCollection mc = Regex.Matches(text, expr); foreach (Match m in mc) { Console.WriteLine(m); } } static void Main(string[] args) { string str = "A Thousand Splendid Suns"; Console.WriteLine("Matching words that start with 'S': "); showMatch(str, @"\bS\S*"); Console.ReadKey(); } } }
امتحان کنید
زمانی که کد بالا توسط کامپایلر سی شارپ اجرا شود، نتیجه زیر را تولید خواهد کرد:
Matching words that start with 'S': The Expression: \bS\S* Splendid Suns
مثال ۲
مثال زیر کلماتی که با حرف ‘m’ شروع شده و با ‘e’ خاتمه یابند را تطبیق می دهد:
using System; using System.Text.RegularExpressions; namespace RegExApplication { class Program { private static void showMatch(string text, string expr) { Console.WriteLine("The Expression: " + expr); MatchCollection mc = Regex.Matches(text, expr); foreach (Match m in mc) { Console.WriteLine(m); } } static void Main(string[] args) { string str = "make maze and manage to measure it"; Console.WriteLine("Matching words start with 'm' and ends with 'e':"); showMatch(str, @"\bm\S*e\b"); Console.ReadKey(); } } }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Matching words start with 'm' and ends with 'e': The Expression: \bm\S*e\b make maze manage measure
مثال ۳
مثال زیر فضای خالی اضافه را حذف می کند:
using System; using System.Text.RegularExpressions; namespace RegExApplication { class Program { static void Main(string[] args) { string input = "Hello World "; string pattern = "\\s+"; string replacement = " "; Regex rgx = new Regex(pattern); string result = rgx.Replace(input, replacement); Console.WriteLine("Original String: {0}", input); Console.WriteLine("Replacement String: {0}", result); Console.ReadKey(); } } }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Original String: Hello World Replacement String: Hello World
نوشته عبارات منظم (Regular Expressions) در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.