c 正規表示式

2021-12-29 20:59:29 字數 3792 閱讀 1420

ismaych 我列舉的其中的一種

public static void runismatch()        

string inputstring = "welcome to the publishers, wrox pree ltd";           

if (regex.ismatch(inputstring, "wrox pree", regexoptions.ignorecase))//匹配在inputstring是否存在wrox pree,大小寫忽略

console.writeline("match found");            

else            

console.writeline("no match found");            

#region replce() 的用法

public static void runreplce()        

string input = "welcome to the publishers, wrox pree ltd";            

input = regex.replace(input,"wrox pree","wrox pree");            

console.writeline(input);

string inputstring = "123,456,123,123,789,123,888";            

regex regexp = new regex("123");            

inputstring = regexp.replace(inputstring, "***", 2, 4);//4表示從第4個開始,2表示為最多替換兩次

console.writeline(inputstring);        

#endregion

#region 正規表示式中split ()的用法

public static void runsplit()        

string inputstring = "123, abc,456,def,789";            

string splitresults;            

splitresults = regex.split(inputstring,", |,");//拆分,以逗號或(逗號和空格組合的)

stringbuilder resultbulider = new stringbuilder(32);            

console.writeline(splitresults.length);            

foreach (string stringelement in splitresults)            

resultbulider.appendformat(":

","af",stringelement);            

console.writeline(resultbulider.tostring());        

#endregion

///        

/// 匹配在字串裡都是數字

///

/// 要匹配的字串的格式

/// 要匹配的字串

/// 在輸入字串中開始搜尋的字元位置。

/// 子字串中包含在搜尋中的字元數。

public void runmatch(string regexstring,string input, int beginning, int length)        

regex myregex = new regex(regexstring);            

match matchmade = myregex.match(input, beginning, length);

if (matchmade.length != length)            

console.write("-匹配不成功

", beginning + 1, length);            

else            

console.writeline("-匹配成功

", beginning + 1, length);            

#region 在整個字串中,有其中一些匹配成功就行了,用matchmade.success

while (matchmade.success)            

console.write(matchmade.value);                

matchmade = matchmade.nextmatch();            

#endregion        

matchregular matchreg = new matchregular();

string input = "123,456";

string regexstring = @"d+";//匹配0-9的數乙個或更多

matchreg.runmatch(regexstring,input, 0, 4);

#region groups和capture的用法

public static void rungroups()       

string string1 = "04:03:27 127.0.0.1 libertyassociates lily";        

regex thereg = new regex(@"(?(d|:)+)s" + @"(?(d|.)+)s" + @"(?(s+)s)" + @"(?(s+))");

//我用相同的組site,這裡會產生乙個問題,後面的組會覆蓋前面的組。

matchcollection thematches = thereg.matches(string1);        

foreach (match thematch in thematches)        

if (thematch.length != 0)            

console.writeline("

thematch:", thematch.tostring());                

console.writeline("time:", thematch.groups["time"]);                

console.writeline("ip:", thematch.groups["ip"]);                

console.writeline("site:", thematch.groups["site"]);  //輸出lily

console.writeline("site:", thematch.groups["site"]); //輸出lily

foreach (capture cap in thematch.groups[

C 正規表示式

c 中的正規表示式 1 c 中的正規表示式 jeffrey e.f.friedl寫了一本關於正規表示式的書 精通正規表示式 作者為了使讀者更好的理解和掌握正規表示式,編造了乙個故事。該書的語言以perl為主。據我所知c 中的正規表示式也是基於perl5。所以它們應該有許多的共同之處。其實,我並不打算...

C 正規表示式

正規表示式 元字元 匹配任何單個字元,匹配括號內的任何乙個字元,改變優先順序,定義提取組,將兩個匹配條件進行邏輯或運算,匹配0至多個它之前的子表示式,和萬用字元 沒關係,匹配前面的子表示式一次或多次,匹配前面的子表示式零次或一次,匹配前面表示式確定的n次,匹配前面表示式至少n次,匹配前面表示式n到m...

C 正規表示式

正規表示式元字元 1 中括號 用來描述匹配規則,乙個中括號只能匹配乙個字元 2 小括號 用來描述匹配的字串,乙個小括號表示匹配一段字串 3 大括號 用來描述匹配的具體數量 4 s 用於匹配單個空格符,包括tab鍵和換行符 5 s 用於匹配除單個空格符之外的所有字元 6 d 用於匹配從0到9的數字 7...