位置:首页 > 高级语言 > C#在线教程 > C#正则表达式

C#正则表达式

正则表达式是可以匹配的输入文本的模式。 .NET Framework提供了一个正则表达式引擎允许这种匹配。一种模式是由一个或多个字符文字,运算符,或结构。

构建正则表达式定义

有各类字符,运算符和结构,可以定义正则表达式。点击如下方的链接来查找这些结构。

正则表达式(Regex)类

Regex类是用于表示一个正则表达式。

Regex类有以下常用方法:

S.N 方法 & 描述
1 public bool IsMatch( string input ) 
指示是否在正则表达式构造函数中指定的正则表达式查找在指定的输入字符串匹配
2 public bool IsMatch( string input, int startat ) 
指示是否在正则表达式构造函数中指定的正则表达式查找在指定的输入字符串匹配,开始在字符串中指定的起始位置
3 public static bool IsMatch( string input, string pattern ) 
指示指定的正则表达式查找在指定的输入字符串匹配
4 public MatchCollection Matches( string input ) 
搜索正则表达式的所有出现在指定的输入字符串
5 public string Replace( string input, string replacement ) 
在指定的输入字符串替换匹配指定的替换字符串正则表达式模式,对于所有的字符串
6 public 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, @"SS*");
         Console.ReadKey();
      }
   }
}

让我们编译和运行上面的程序,这将产生以下结果:

Matching words that start with 'S':
The Expression: SS*
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, @"mS*e");
         Console.ReadKey();
      }
   }
}

让我们编译和运行上面的程序,这将产生以下结果:

Matching words start with 'm' and ends with 'e':
The Expression: mS*e
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