C# 正則表達(dá)式

2018-09-27 16:28 更新

正則表達(dá)式

正則表達(dá)式是一種可以和輸入文本相匹配的表達(dá)式。.Net framework 提供了一個(gè)正則表達(dá)式引擎讓這種匹配成為可能。一個(gè)表達(dá)式可以由一個(gè)或多個(gè)字符,運(yùn)算符,或結(jié)構(gòu)體組成。

構(gòu)建正則表達(dá)式的定義

有很多種類的字符,運(yùn)算符,結(jié)構(gòu)體可以定義正則表達(dá)式。

  • 轉(zhuǎn)義字符
  • 字符類
  • 集合
  • 分組構(gòu)造
  • 限定符
  • 回溯引用構(gòu)造
  • 可替換結(jié)構(gòu)
  • 替換
  • 混合結(jié)構(gòu)

Regex 正則表達(dá)式類

Regex 類用于表示一個(gè)正則表達(dá)式。它有下列常用的方法:

Sr.No方法
1public bool IsMatch(string input)
指出輸入的字符串中是否含有特定的正則表達(dá)式。
2public bool IsMatch(string input, int startat)
指出輸入的字符串中是否含有特定的正則表達(dá)式,該函數(shù)的 startat 變量指出了字符串開始查找的位置。
3public static bool IsMatch(string input, string pattern)
指出特定的表達(dá)式是否和輸入的字符串匹配。
4public MatchCollection Matches(string input)
在所有出現(xiàn)的正則表達(dá)式中搜索特定的輸入字符
5public string Replace(string input, string replacement)
在一個(gè)特定的輸入字符中,用特定的字符串替換所有滿足某個(gè)表達(dá)式的字符串。
6public string[] Split(string input)
將一個(gè)輸入字符拆分成一組子字符串,從一個(gè)由正則表達(dá)式指出的位置上開始。

有關(guān)屬性和方法的完成列表,請(qǐng)參見微軟的 C# 文檔。

示例 1

下列的例子中找出了以 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();
            }
        }
    }   

編譯執(zhí)行上述代碼,得到如下結(jié)果:


    Matching words that start with 'S':
    The Expression: \bS\S*
    Splendid
    Suns

示例 2

下面的例子中找出了以 m 開頭以 e 結(jié)尾的單詞


    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();
            }
        }
    }

編譯執(zhí)行上述代碼,得到如下結(jié)果:


    Matching words start with 'm' and ends with 'e':
    The Expression: \bm\S*e\b
    make
    maze
    manage
    measure

示例 3

這個(gè)例子替換了額外的空白符:


    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();
            }
        }
    }

編譯執(zhí)行上述代碼,得到如下結(jié)果:

    Original String: Hello World   
    Replacement String: Hello World
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)