锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
]]>
澶氬皯騫存潵錛岃澶氱殑緙栫▼璇█鍜屽伐鍏烽兘鍖呭惈瀵硅鍒欒〃杈懼紡鐨勬敮鎸侊紝.NET鍩虹綾誨簱涓寘鍚湁涓涓悕瀛楃┖闂村拰涓緋誨垪鍙互鍏呭垎鍙戞尌瑙勫垯琛ㄨ揪寮忓▉鍔涚殑綾伙紝鑰屼笖瀹冧滑涔熼兘涓庢湭鏉ョ殑Perl 5涓殑瑙勫垯琛ㄨ揪寮忓吋瀹廣偮?
銆銆姝ゅ錛宺egexp綾昏繕鑳藉瀹屾垚涓浜涘叾浠栫殑鍔熻兘錛屼緥濡備粠鍙寵嚦宸︾殑緇撳悎妯″紡鍜岃〃杈懼紡鐨勭紪杈戠瓑銆偮?
銆銆鍦ㄨ繖綃囨枃绔犱腑錛屾垜灝嗙畝瑕佸湴浠嬬粛System.Text.RegularExpression涓殑綾誨拰鏂規硶銆佷竴浜涘瓧絎︿覆鍖歸厤鍜屾浛鎹㈢殑渚嬪瓙浠ュ強緇勭粨鏋勭殑璇︾粏鎯呭喌錛屾渶鍚庯紝榪樹細浠嬬粛涓浜涗綘鍙兘浼氱敤鍒扮殑甯歌鐨勮〃杈懼紡銆偮?
搴旇鎺屾彙鐨勫熀紜鐭ヨ瘑聽
銆銆瑙勫垯琛ㄨ揪寮忕殑鐭ヨ瘑鍙兘鏄笉灝戠紪紼嬩漢鍛樷滃父瀛﹀父蹇樷濈殑鐭ヨ瘑涔嬩竴銆傚湪榪欑瘒鏂囩珷涓紝鎴戜滑灝嗗亣瀹氫綘宸茬粡鎺屾彙浜嗚鍒欒〃杈懼紡鐨勭敤娉曪紝灝ゅ叾鏄疨erl 5涓〃杈懼紡鐨勭敤娉曘?NET鐨剅egexp綾繪槸Perl 5涓〃杈懼紡鐨勪竴涓秴闆嗭紝鍥犳錛屼粠鐞嗚涓婅瀹冨皢浣滀負涓涓緢濂界殑璧風偣銆傛垜浠繕鍋囪浣犲叿鏈変簡C#鐨勮娉曞拰.NET鏋舵瀯鐨勫熀鏈煡璇嗐偮?
銆銆濡傛灉浣犳病鏈夎鍒欒〃杈懼紡鏂歸潰鐨勭煡璇嗭紝鎴戝緩璁綘浠嶱erl 5鐨勮娉曠潃鎵嬪紑濮嬪涔犮傚湪瑙勫垯琛ㄨ揪寮忔柟闈㈢殑鏉冨▉涔︾睄鏄敱鏉板紬閲屄峰紬闆峰痙灝旂紪鍐欑殑銆婃帉鎻¤〃杈懼紡銆嬩竴涔︼紝瀵逛簬甯屾湜娣卞埢鐞嗚В琛ㄨ揪寮忕殑璇昏咃紝鎴戜滑寮虹儓寤鴻闃呰榪欐湰涔︺偮?
RegularExpression緇勫悎浣撀?
銆銆regexp瑙勫垯綾誨寘鍚湪System.Text.RegularExpressions.dll鏂囦歡涓紝鍦ㄥ搴旂敤杞歡榪涜緙栬瘧鏃朵綘蹇呴』寮曠敤榪欎釜鏂囦歡錛屼緥濡傦紝csc r:System.Text.RegularExpressions.dll foo.cs鍛戒護灝嗗垱寤篺oo.exe鏂囦歡錛屽畠灝卞紩鐢ㄤ簡System.Text.RegularExpressions鏂囦歡銆偮?
鍚嶅瓧絀洪棿綆浠嬄?
銆銆鍦ㄥ悕瀛楃┖闂翠腑浠呬粎鍖呭惈鐫6涓被鍜屼竴涓畾涔夛紝瀹冧滑鏄細聽
銆銆Capture: 鍖呭惈涓嬈″尮閰嶇殑緇撴灉錛浡?
銆銆CaptureCollection: Capture鐨勫簭鍒楋紱聽
銆銆Group: 涓嬈$粍璁板綍鐨勭粨鏋滐紝鐢盋apture緇ф壙鑰屾潵錛浡?
銆銆Match: 涓嬈¤〃杈懼紡鐨勫尮閰嶇粨鏋滐紝鐢盙roup緇ф壙鑰屾潵錛浡?
銆銆MatchCollection: Match鐨勪竴涓簭鍒楋紱聽
銆銆MatchEvaluator: 鎵ц鏇挎崲鎿嶄綔鏃朵嬌鐢ㄧ殑浠g悊錛浡?
銆銆Regex錛氱紪璇戝悗鐨勮〃杈懼紡鐨勫疄渚嬨偮?
銆銆Regex綾諱腑榪樺寘鍚竴浜涢潤鎬佺殑鏂規硶錛毬?
銆銆Escape: 瀵瑰瓧絎︿覆涓殑regex涓殑杞箟絎﹁繘琛岃漿涔夛紱聽
銆銆IsMatch: 濡傛灉琛ㄨ揪寮忓湪瀛楃涓蹭腑鍖歸厤錛岃鏂規硶榪斿洖涓涓竷灝斿鹼紱聽
銆銆Match: 榪斿洖Match鐨勫疄渚嬶紱聽
銆銆Matches: 榪斿洖涓緋誨垪鐨凪atch鐨勬柟娉曪紱聽
銆銆Replace: 鐢ㄦ浛鎹㈠瓧絎︿覆鏇挎崲鍖歸厤鐨勮〃杈懼紡錛浡?
銆銆Split: 榪斿洖涓緋誨垪鐢辮〃杈懼紡鍐沖畾鐨勫瓧絎︿覆錛浡?
銆銆Unescape:涓嶅瀛楃涓蹭腑鐨勮漿涔夊瓧絎﹁漿涔夈偮?
綆鍗曞尮閰嵚?
銆銆鎴戜滑棣栧厛浠庝嬌鐢≧egex銆丮atch綾葷殑綆鍗曡〃杈懼紡寮濮嬪涔犮偮?
銆銆Match m = Regex.Match("abracadabra", "(a|b|r)+");聽
銆銆鎴戜滑鐜板湪鏈変簡涓涓彲浠ョ敤浜庢祴璇曠殑Match綾葷殑瀹炰緥錛屼緥濡傦細if (m.Success)...聽
銆銆濡傛灉鎯充嬌鐢ㄥ尮閰嶇殑瀛楃涓詫紝鍙互鎶婂畠杞崲鎴愪竴涓瓧絎︿覆錛毬?
銆銆Console.WriteLine("Match="+m.ToString());聽
銆銆榪欎釜渚嬪瓙鍙互寰楀埌濡備笅鐨勮緭鍑? Match=abra銆傝繖灝辨槸鍖歸厤鐨勫瓧絎︿覆浜嗐偮?
瀛楃涓茬殑鏇挎崲聽
銆銆綆鍗曞瓧絎︿覆鐨勬浛鎹㈤潪甯哥洿瑙傘備緥濡備笅闈㈢殑璇彞錛毬?
銆銆string s = Regex.Replace("abracadabra", "abra", "zzzz");聽
銆銆瀹冭繑鍥炲瓧絎︿覆zzzzcadzzzz錛屾墍鏈夊尮閰嶇殑瀛楃涓查兘琚浛鎹㈡垚浜唞zzzz銆偮?
銆銆鐜板湪鎴戜滑鏉ョ湅涓涓瘮杈冨鏉傜殑瀛楃涓叉浛鎹㈢殑渚嬪瓙錛毬?
銆銆string s = Regex.Replace(" abra ", @"^\s*(.*?)\s*$", "$1");聽
銆銆榪欎釜璇彞榪斿洖瀛楃涓瞐bra錛屽叾鍓嶅鍜屽悗緙鐨勭┖鏍奸兘鍘繪帀浜嗐偮?
銆銆涓婇潰鐨勬ā寮忓浜庡垹闄や換鎰忓瓧絎︿覆涓殑鍓嶅鍜屽悗緇┖鏍奸兘闈炲父鏈夌敤銆傚湪C#涓紝鎴戜滑榪樼粡甯鎬嬌鐢ㄥ瓧姣嶅瓧絎︿覆錛屽湪涓涓瓧姣嶅瓧絎︿覆涓紝緙栬瘧紼嬪簭涓嶆妸瀛楃鈥?\鈥?浣滀負杞箟瀛楃澶勭悊銆傚湪浣跨敤瀛楃鈥淺鈥濇寚瀹氳漿涔夊瓧絎︽椂錛孈"..."鏄潪甯告湁鐢ㄧ殑銆傚彟澶栧煎緱涓鎻愮殑鏄?1鍦ㄥ瓧絎︿覆鏇挎崲鏂歸潰鐨勪嬌鐢紝瀹冭〃鏄庢浛鎹㈠瓧絎︿覆鍙兘鍖呭惈琚浛鎹㈢殑瀛楃涓層偮?
鍖歸厤寮曟搸鐨勭粏鑺偮?
銆銆鐜板湪錛屾垜浠氳繃涓涓粍緇撴瀯鏉ョ悊瑙d竴涓◢寰鏉傜殑渚嬪瓙銆傜湅涓嬮潰鐨勪緥瀛愶細聽
銆銆string text = "abracadabra1abracadabra2abracadabra3";聽
銆銆string pat = @"聽
銆銆銆銆( # 絎竴涓粍鐨勫紑濮嬄?
銆銆銆銆 abra # 鍖歸厤瀛楃涓瞐bra聽
銆銆銆銆 ( # 絎簩涓粍鐨勫紑濮嬄?
銆銆銆銆 cad # 鍖歸厤瀛楃涓瞔ad聽
銆銆銆銆 )? # 絎簩涓粍緇撴潫錛堝彲閫夛級聽
銆銆銆銆) # 絎竴涓粍緇撴潫聽
銆銆銆銆+ # 鍖歸厤涓嬈℃垨澶氭聽
銆銆銆銆";聽
銆銆//鍒╃敤x淇グ絎﹀拷鐣ユ敞閲娐?
銆銆Regex r = new Regex(pat, "x");聽
銆銆//鑾峰緱緇勫彿鐮佺殑娓呭崟聽
銆銆int[] gnums = r.GetGroupNumbers();聽
銆銆//棣栨鍖歸厤聽
銆銆Match m = r.Match(text);聽
銆銆while (m.Success)聽
銆銆 {聽
銆銆//浠庣粍1寮濮嬄?
銆銆 for (int i = 1; i < gnums.Length; i++)聽
銆銆銆銆{聽
銆銆銆銆Group g = m.Group(gnums[i]);聽
銆銆//鑾峰緱榪欐鍖歸厤鐨勭粍聽
銆銆銆銆Console.WriteLine("Group"+gnums[i]+"=["+g.ToString()+"]");聽
銆銆//璁$畻榪欎釜緇勭殑璧峰浣嶇疆鍜岄暱搴β?
銆銆銆銆CaptureCollection cc = g.Captures;聽
銆銆銆銆for (int j = 0; j < cc.Count; j++)聽
銆銆銆銆 {聽
銆銆銆銆 Capture c = cc[j];聽
銆銆銆銆 Console.WriteLine(" Capture" + j + "=["+c.ToString()聽
銆銆銆銆銆銆 + "] Index=" + c.Index + " Length=" + c.Length);聽
銆銆銆銆 }聽
銆銆銆銆}聽
銆銆//涓嬩竴涓尮閰嵚?
銆銆 m = m.NextMatch();聽
銆銆 }聽
銆銆榪欎釜渚嬪瓙鐨勮緭鍑哄涓嬫墍紺猴細聽
銆銆Group1=[abra]聽
銆銆銆銆銆銆Capture0=[abracad] Index=0 Length=7聽
銆銆銆銆銆銆Capture1=[abra] Index=7 Length=4聽
銆銆Group2=[cad]聽
銆銆銆銆銆銆Capture0=[cad] Index=4 Length=3聽
銆銆Group1=[abra]聽
銆銆銆銆銆銆Capture0=[abracad] Index=12 Length=7聽
銆銆銆銆銆銆Capture1=[abra] Index=19 Length=4聽
銆銆Group2=[cad]聽
銆銆銆銆銆銆Capture0=[cad] Index=16 Length=3聽
銆銆Group1=[abra]聽
銆銆銆銆銆銆Capture0=[abracad] Index=24 Length=7聽
銆銆銆銆銆銆Capture1=[abra] Index=31 Length=4聽
銆銆Group2=[cad]聽
銆銆銆銆銆銆Capture0=[cad] Index=28 Length=3聽
銆銆鎴戜滑棣栧厛浠庤冩煡瀛楃涓瞤at寮濮嬶紝pat涓寘鍚湁琛ㄨ揪寮忋傜涓涓猚apture鏄粠絎竴涓渾鎷彿寮濮嬬殑錛岀劧鍚庤〃杈懼紡灝嗗尮閰嶅埌涓涓猘bra銆傜浜屼釜capture緇勪粠絎簩涓渾鎷彿寮濮嬶紝浣嗙涓涓猚apture緇勮繕娌℃湁緇撴潫錛岃繖鎰忓懗鐫絎竴涓粍鍖歸厤鐨勭粨鏋滄槸abracad 錛岃岀浜屼釜緇勭殑鍖歸厤緇撴灉浠呬粎鏄痗ad銆傚洜姝ゅ鏋滈氳繃浣跨敤錛熺鍙瘋屼嬌cad鎴愪負涓欏瑰彲閫夌殑鍖歸厤錛屽尮閰嶇殑緇撴灉灝卞彲鑳芥槸abra鎴朼bracad銆傜劧鍚庯紝絎竴涓粍灝變細緇撴潫錛岄氳繃鎸囧畾+絎﹀彿瑕佹眰琛ㄨ揪寮忚繘琛屽嬈″尮閰嶃偮?
銆銆鐜板湪鎴戜滑鏉ョ湅鐪嬪尮閰嶈繃紼嬩腑鍙戠敓鐨勬儏鍐點傞鍏堬紝閫氳繃璋冪敤Regex鐨刢onstructor鏂規硶寤虹珛琛ㄨ揪寮忕殑涓涓疄渚嬶紝騫跺湪鍏朵腑鎸囧畾鍚勭閫夐」銆傚湪榪欎釜渚嬪瓙涓紝鐢變簬鍦ㄨ〃杈懼紡涓湁娉ㄩ噴錛屽洜姝ら夌敤浜唜閫夐」錛屽彟澶栬繕浣跨敤浜嗕竴浜涚┖鏍箋傛墦寮x閫夐」錛岃〃杈懼紡灝嗕細蹇界暐娉ㄩ噴鍜屽叾涓病鏈夎漿涔夌殑絀烘牸銆偮?
銆銆鐒跺悗錛屽彇寰楄〃杈懼紡涓畾涔夌殑緇勭殑緙栧彿鐨勬竻鍗曘備綘褰撶劧鍙互鏄炬у湴浣跨敤榪欎簺緙栧彿錛屽湪榪欓噷浣跨敤鐨勬槸緙栫▼鐨勬柟娉曘傚鏋滀嬌鐢ㄤ簡鍛藉悕鐨勭粍錛屼綔涓轟竴縐嶅緩绔嬪揩閫熺儲寮曠殑閫斿緞榪欑鏂規硶涔熷崄鍒嗘湁鏁堛偮?
銆銆鎺ヤ笅鏉ユ槸瀹屾垚絎竴嬈″尮閰嶃傞氳繃涓涓驚鐜祴璇曞綋鍓嶇殑鍖歸厤鏄惁鎴愬姛錛屾帴涓嬫潵鏄粠group 1寮濮嬮噸澶嶅緇勬竻鍗曟墽琛岃繖涓鎿嶄綔銆傚湪榪欎釜渚嬪瓙涓病鏈変嬌鐢╣roup 0鐨勫師鍥犳槸group 0鏄竴涓畬鍏ㄥ尮閰嶇殑瀛楃涓詫紝濡傛灉瑕侀氳繃鏀墮泦鍏ㄩ儴鍖歸厤鐨勫瓧絎︿覆浣滀負涓涓崟涓鐨勫瓧絎︿覆錛屽氨浼氱敤鍒癵roup 0浜嗐偮?
銆銆鎴戜滑璺熻釜姣忎釜group涓殑CaptureCollection銆傞氬父鎯呭喌涓嬫瘡嬈″尮閰嶃佹瘡涓猤roup涓彧鑳芥湁涓涓猚apture錛屼絾鏈緥涓殑Group1鍒欐湁涓や釜capture錛欳apture0鍜孋apture1銆傚鏋滀綘浠呴渶瑕丟roup1鐨凾oString錛屽氨浼氬彧寰楀埌abra錛屽綋鐒跺畠涔熶細涓巃bracad鍖歸厤銆傜粍涓璗oString鐨勫煎氨鏄叾CaptureCollection涓渶鍚庝竴涓狢apture鐨勫鹼紝榪欐鏄垜浠墍闇瑕佺殑銆傚鏋滀綘甯屾湜鏁翠釜榪囩▼鍦ㄥ尮閰峚bra鍚庣粨鏉燂紝灝卞簲璇ヤ粠琛ㄨ揪寮忎腑鍒犻櫎+絎﹀彿錛岃regex寮曟搸鐭ラ亾鎴戜滑鍙渶瑕佸琛ㄨ揪寮忚繘琛屽尮閰嶃偮?
鍩轟簬榪囩▼鍜屽熀浜庤〃杈懼紡鏂規硶鐨勬瘮杈兟?
銆銆涓鑸儏鍐典笅錛屼嬌鐢ㄨ鍒欒〃杈懼紡鐨勭敤鎴峰彲浠ュ垎涓轟互涓嬩簩澶х被錛氱涓綾葷敤鎴峰敖閲忎笉浣跨敤瑙勫垯琛ㄨ揪寮忥紝鑰屾槸浣跨敤榪囩▼鏉ユ墽琛屼竴浜涢渶瑕侀噸澶嶇殑鎿嶄綔錛涚浜岀被鐢ㄦ埛鍒欏厖鍒嗗埄鐢ㄨ鍒欒〃杈懼紡澶勭悊寮曟搸鐨勫姛鑳藉拰濞佸姏錛岃屽敖鍙兘灝戝湴浣跨敤榪囩▼銆偮?
銆銆瀵逛簬鎴戜滑澶у鏁扮敤鎴瘋岃█錛屾渶濂界殑鏂規鑾繃浜庝簩鑰呭吋鑰岀敤涔嬩簡銆傛垜甯屾湜榪欑瘒鏂囩珷鑳藉璇存槑.NET璇█涓璻egexp綾葷殑浣滅敤浠ュ強瀹冨湪鎬ц兘鍜屽鏉傛т箣闂寸殑浼樸佸姡鐐廣偮?
鍩轟簬榪囩▼鐨勬ā寮徛?
銆銆鎴戜滑鍦ㄧ紪紼嬩腑緇忓父闇瑕佺敤鍒扮殑涓涓姛鑳芥槸瀵瑰瓧絎︿覆涓殑涓閮ㄥ垎榪涜鍖歸厤鎴栧叾浠栦竴浜涘瀛楃涓插鐞嗭紝涓嬮潰鏄竴涓瀛楃涓蹭腑鐨勫崟璇嶈繘琛屽尮閰嶇殑渚嬪瓙錛毬?
銆銆string text = "the quick red fox jumped over the lazy brown dog.";聽
銆銆System.Console.WriteLine("text=[" + text + "]");聽
銆銆string result = "";聽
銆銆string pattern = @"\w+|\W+";聽
銆銆foreach (Match m in Regex.Matches(text, pattern))聽
銆銆 {聽
銆銆// 鍙栧緱鍖歸厤鐨勫瓧絎︿覆聽
銆銆 string x = m.ToString();聽
銆銆// 濡傛灉絎竴涓瓧絎︽槸灝忓啓聽
銆銆 if (char.IsLower(x[0]))聽
銆銆// 鍙樻垚澶у啓聽
銆銆銆銆x = char.ToUpper(x[0]) + x.Substring(1, x.Length-1);聽
銆銆// 鏀墮泦鎵鏈夌殑瀛楃聽
銆銆 result += x;聽
銆銆 }聽
銆銆System.Console.WriteLine("result=[" + result + "]");聽
銆銆姝h薄涓婇潰鐨勪緥瀛愭墍紺猴紝鎴戜滑浣跨敤浜咰#璇█涓殑foreach璇彞澶勭悊姣忎釜鍖歸厤鐨勫瓧絎︼紝騫跺畬鎴愮浉搴旂殑澶勭悊錛屽湪榪欎釜渚嬪瓙涓紝鏂板垱寤轟簡涓涓猺esult瀛楃涓層傝繖涓緥瀛愮殑杈撳嚭鎵涓嬫墍紺猴細聽
銆銆text=[the quick red fox jumped over the lazy brown dog.]聽
銆銆result=[The Quick Red Fox Jumped Over The Lazy Brown Dog.]聽
鍩轟簬琛ㄨ揪寮忕殑妯″紡聽
銆銆瀹屾垚涓婁緥涓殑鍔熻兘鐨勫彟涓鏉¢斿緞鏄氳繃涓涓狹atchEvaluator錛屾柊鐨勪唬鐮佸涓嬫墍紺猴細聽
銆銆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 + "]");聽
銆銆銆銆}聽
銆銆鍚屾椂闇瑕佹敞鎰忕殑鏄紝鐢變簬浠呬粎闇瑕佸鍗曡瘝榪涜淇敼鑰屾棤闇瀵歸潪鍗曡瘝榪涜淇敼錛岃繖涓ā寮忔樉寰楅潪甯哥畝鍗曘偮?
甯哥敤琛ㄨ揪寮徛?
銆銆涓轟簡鑳藉鏇村ソ鍦扮悊瑙e浣曞湪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);聽
瀹炵幇姣忚80涓瓧絎β?
銆銆string t4 = "********************"聽
銆銆 + "******************************"聽
銆銆 + "******************************";聽
銆銆string p4 = ".{80,}";聽
銆銆Match m4 = Regex.Match(t4, p4);聽
鏈?鏃?騫?灝忔椂:鍒?縐掔殑鏃墮棿鏍煎紡聽
銆銆string t5 = "01/01/01 16:10:01";聽
銆銆string p5 = @"(\d+)/(\d+)/(\d+) (\d+):(\d+):(\d+)";聽
銆銆Match m5 = Regex.Match(t5, p5);聽
鏀瑰彉鐩綍錛堜粎閫傜敤浜嶹indows騫沖彴錛壜?
string t6 = @"C:\Documents and Settings\user1\Desktop\";聽
string r6 = Regex.Replace(t6,@" \\user1\\ ", @" \\user2\\ ");聽
鎵╁睍16浣嶈漿涔夌聽
銆銆string t7 = "%41"; // capital A聽
銆銆string p7 = "%([0-9A-Fa-f][0-9A-Fa-f])";聽
銆銆string r7 = Regex.Replace(t7, p7, HexConvert);聽
鍒犻櫎C璇█涓殑娉ㄩ噴錛堟湁寰呭畬鍠勶級聽
銆銆string t8 = @"聽
銆銆/*聽
銆銆 * 浼犵粺椋庢牸鐨勬敞閲娐?
銆銆 */聽
銆銆";聽
銆銆string p8 = @"聽
銆銆 /\* # 鍖歸厤娉ㄩ噴寮濮嬬殑瀹氱晫絎β?
銆銆 .*? # 鍖歸厤娉ㄩ噴聽
銆銆 \*/ # 鍖歸厤娉ㄩ噴緇撴潫瀹氱晫絎β?
銆銆";聽
銆銆string r8 = Regex.Replace(t8, p8, "", "xs");聽
鍒犻櫎瀛楃涓蹭腑寮濮嬪拰緇撴潫澶勭殑絀烘牸聽
銆銆string t9a = " leading";聽
銆銆string p9a = @"^\s+";聽
銆銆string r9a = Regex.Replace(t9a, p9a, "");聽
銆銆string t9b = "trailing ";聽
銆銆string p9b = @"\s+$";聽
銆銆string r9b = Regex.Replace(t9b, p9b, "");聽
銆銆鍦ㄥ瓧絎鍚庢坊鍔犲瓧絎錛屼嬌涔嬫垚涓虹湡姝g殑鏂拌聽
銆銆string t10 = @"\ntest\n";聽
銆銆string r10 = Regex.Replace(t10, @" \\n ", "\n");聽
杞崲IP鍦板潃聽
銆銆string t11 = "55.54.53.52";聽
銆銆string p11 = "^" +聽
銆銆 @"([01]?\d\d|2[0-4]\d|25[0-5])\." +聽
銆銆 @"([01]?\d\d|2[0-4]\d|25[0-5])\." +聽
銆銆 @"([01]?\d\d|2[0-4]\d|25[0-5])\." +聽
銆銆 @"([01]?\d\d|2[0-4]\d|25[0-5])" +聽
銆銆 "$";聽
銆銆Match m11 = Regex.Match(t11, p11);聽
鍒犻櫎鏂囦歡鍚嶅寘鍚殑璺緞聽
銆銆string t12 = @"c:\file.txt";聽
銆銆string p12 = @"^.*\\";聽
銆銆string r12 = Regex.Replace(t12, p12, "");聽
鑱旀帴澶氳瀛楃涓蹭腑鐨勮聽
銆銆string t13 = @"this is聽
銆銆a split line";聽
銆銆string p13 = @"\s*\r?\n\s*";聽
銆銆string r13 = Regex.Replace(t13, p13, " ");聽
鎻愬彇瀛楃涓蹭腑鐨勬墍鏈夋暟瀛椔?
銆銆string t14 = @"聽
銆銆test 1聽
銆銆test 2.3聽
銆銆test 47聽
銆銆";聽
銆銆string p14 = @"(\d+\.?\d*|\.\d+)";聽
銆銆MatchCollection mc14 = Regex.Matches(t14, p14);聽
鎵懼嚭鎵鏈夌殑澶у啓瀛楁瘝聽
銆銆string t15 = "This IS a Test OF ALL Caps";聽
銆銆string p15 = @"(\b[^\Wa-z0-9_]+\b)";聽
銆銆MatchCollection mc15 = Regex.Matches(t15, p15);聽
鎵懼嚭灝忓啓鐨勫崟璇嵚?
銆銆string t16 = "This is A Test of lowercase";聽
銆銆string p16 = @"(\b[^\WA-Z0-9_]+\b)";聽
銆銆MatchCollection mc16 = Regex.Matches(t16, p16);聽
鎵懼嚭絎竴涓瓧姣嶄負澶у啓鐨勫崟璇嵚?
銆銆string t17 = "This is A Test of Initial Caps";聽
銆銆string p17 = @"(\b[^\Wa-z0-9_][^\WA-Z0-9_]*\b)";聽
銆銆MatchCollection mc17 = Regex.Matches(t17, p17);聽
鎵懼嚭綆鍗曠殑HTML璇█涓殑閾炬帴聽
銆銆string t18 = @"聽
銆銆<html>聽
銆銆<a href=""first.htm"">first tag text</a>聽
銆銆<a href=""next.htm"">next tag text</a>聽
銆銆</html>聽
銆銆";聽
銆銆string p18 = @"<A[^>]*?HREF\s*=\s*[""']?" + @"([^'"" >]+?)[ '""]?>";聽
銆銆MatchCollection mc18 = Regex.Matches(t18, p18, "si");