位置:首頁 > 高級語言 > 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