C# 正则表达式

由 小路依依 创建, 最后一次修改 2016-08-12

正则表达式

正则表达式是一种可以和输入文本相匹配的表达式。.Net framework 提供了一个正则表达式引擎让这种匹配成为可能。一个表达式可以由一个或多个字符,运算符,或结构体组成。

构建正则表达式的定义

有很多种类的字符,运算符,结构体可以定义正则表达式。

  • 转义字符
  • 字符类
  • 集合
  • 分组构造
  • 限定符
  • 回溯引用构造
  • 可替换结构
  • 替换
  • 混合结构

Regex 正则表达式类

Regex 类用于表示一个正则表达式。它有下列常用的方法:

Sr.No方法
1public bool IsMatch(string input)
指出输入的字符串中是否含有特定的正则表达式。
2public bool IsMatch(string input, int startat)
指出输入的字符串中是否含有特定的正则表达式,该函数的 startat 变量指出了字符串开始查找的位置。
3public static bool IsMatch(string input, string pattern)
指出特定的表达式是否和输入的字符串匹配。
4public MatchCollection Matches(string input)
在所有出现的正则表达式中搜索特定的输入字符
5public string Replace(string input, string replacement)
在一个特定的输入字符中,用特定的字符串替换所有满足某个表达式的字符串。
6public string[] Split(string input)
将一个输入字符拆分成一组子字符串,从一个由正则表达式指出的位置上开始。

有关属性和方法的完成列表,请参见微软的 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();
            }
        }
    }   

编译执行上述代码,得到如下结果:


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

示例 2

下面的例子中找出了以 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

示例 3

这个例子替换了额外的空白符:


    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
以上内容是否对您有帮助:

二维码
建议反馈
二维码