程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#中的正則表達式詳解(5)

C#中的正則表達式詳解(5)

編輯:關於C語言

基於表達式的模式

完成上例中的功能的另一條途徑是通過一個MatchEvaluator,新的代碼如下所示:

static string CapText(Match m)
{
 //取得匹配的字符串
 string x = m.ToString();
 // 如果第一個字符是小寫
 if (char.IsLower(x[0]))
  // 轉換為大寫
   return char.ToUpper(x[0]) + x.Substring(1, x.Length-1);
 return x;
}
static void Main()
{
 string text = "the quick red fox jumped over the
 lazy brown dog.";
 System.Console.WriteLine("text=[" + text + "]");
  string pattern = @"\w+";
 string result = Regex.Replace(text, pattern,
 new MatchEvaluator(Test.CapText));
 System.Console.WriteLine("result=[" + result + "]");
}

同時需要注意的是,由於僅僅需要對單詞進行修改而無需對非單詞進行修改,這個模式顯得非常簡單。

為了能夠更好地理解如何在C#環境中使用規則表達式,我寫出一些對你來說可能有用的規則表達式,這些表達式在其他的環境中都被使用過,希望能夠對你有所幫助。

羅馬數字

string p1 = "^m*(d?c{0,3}|c[dm])" + "(l?x{0,3}|x[lc])(v?i{0,3}|i[vx])$";
string t1 = "vii";
Match m1 = Regex.Match(t1, p1);

交換前二個單詞

string t2 = "the quick brown fox";
string p2 = @"(\S+)(\s+)(\S+)";
Regex x2 = new Regex(p2);
string r2 = x2.Replace(t2, "$3$2$1", 1);

關健字=值

string t3 = "myval = 3";
string p3 = @"(\w+)\s*=\s*(.*)\s*$";
Match m3 = Regex.Match(t3, p3);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved