عبارات با قاعده در سی شارپ

عبارات منظم در سی شارپ

عبارات با قاعده در سی شارپ(Regular Expressions)

عبارت با قاعده، یک الگو است که می تواند با متن ورودی تطبیق داده شود. .Net framework یک موتور عبارت با قاعده فراهم کرده است که به چنین تطبیق هایی اجازه می دهد. الگوی متشکل از یک یا چند لیترال ، اپراتورها، یا ساختارها است.

تعریف عبارات با قاعده

دسته بندی های مختلف از کاراکترها، اپراتورها، و ساختارها وجود دارند که به شما اجازه می دهند تا عبارات منظم را تعریف کنید.

  • Character escapes
  • Character classes
  • Anchors
  • Grouping constructs
  • Quantifiers
  • Backreference constructs
  • Alternation constructs
  • Substitutions
  • Miscellaneous constructs

کلاس عبارت منظم (The Regex Class)

Regex class برای نشان دادن عبارت منظم استفاده می شود. روش استفاده از آن معمولی است و در زیر آمده است:

 

Sr.No Methods
۱ public bool IsMatch(string input)

Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.

۲ public bool IsMatch(string input, int startat)

Indicates whether the regular expression specified in the Regex constructor finds a match in the specified input string, beginning at the specified starting position in the string.

۳ public static bool IsMatch(string input, string pattern)

Indicates whether the specified regular expression finds a match in the specified input string.

۴ public MatchCollection Matches(string input)

Searches the specified input string for all occurrences of a regular expression.

۵ public string Replace(string input, string replacement)

In a specified input string, replaces all strings that match a regular expression pattern with a specified replacement string.

۶ public string[] Split(string input)

Splits an input string into an array of substrings at the positions defined by a regular expression pattern specified in the Regex constructor.

برای مشاهده لیست کامل از متدها و خصوصیات، لطفا مستندات مایکروسافت در# C را مطالعه کنید.
مثال ۱
مثال زیر، کلماتی که با ‘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

برچسب ها

ممکن است به این موارد نیز علاقه مند باشید:

0 دیدگاه در “عبارات با قاعده در سی شارپ”

پاسخ دهید

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

کد امنیتی را در کادر زیر بنویسید *

به ما بپیوندید