عبارات منظم (Regular Expressions) در زبان سی شارپ – آموزش زبان سی شارپ

csharp regular expressions 4554 تصویر

عبارات منظم (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) در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *