正規表示式 11 字串匹配案例

2021-09-26 10:48:25 字數 949 閱讀 3089

寫法一:regex.ismatch("100830","^[0-9]$");  //匹配結果是true

寫法二:regex.ismatch("119", @"^\d$");  //匹配結果是flase

解釋:由元字元定義得知"[0-9]"表示0到9的任意字元,""表示前面的字元匹配6次,因此「[0-9]」中的表示對數字匹配6次。簡寫表示式得知「[0-9]」可以被「\d」代替,所以第二種寫法「\d」也是正確的,不要忘了@或者\\d。

案例2:判斷乙個字串是不是身份證號碼,即是否是15或18位數字。

錯誤寫法:regex.ismatch("123456789123456789", @"^\d|\d$"),表示15位數字開頭或者18位數字結尾。 因為|優先順序低。

正確寫法:console.writeline(regex.ismatch("0111111111111111", @"^\d$|^\d$"))或者@"^(\d|\d)$"

案例3:判斷字串是否為正確的國內**號碼,不考慮分機。比如「010-95555」、「01095555」、「95555」都是正確的號碼。區號為3位或者4位。  

regex.ismatch("123456-95555", @"^\d\-?\d+$")

"^\d\-?\d+$"表示被匹配的字串行應該是由三至四位數字組成,由於長途區號的連字元「-」可有可無,所以這裡使用「?」元字元進行說明。由於連字元「-」在正規表示式中有特殊含義(表示範圍,比如[0-9]),所以要對其進行轉義。

regex.ismatch("[email protected]", @"^\w+@\w+\.\w+$");

括號中的任意字元,\w字母、數字、下劃線,+一到多個。由於.在正規表示式中有特殊的含義,因此對於真正想表達「.」則需要轉義「\.」。先想正規表示式是語言無關的。這是因為c#中、正規表示式中\都代表轉義符,就有點亂了。考慮的時候先不考慮c#語言,分成兩步先考慮正規表示式語法,再考慮找個正規表示式在c#中如何表示。

正規表示式匹配字串

正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計...

正規表示式匹配 字串

正規表示式匹配字串 假使,有幾個需要驗證的字串用 連線在一起 形如 farmer1,1farmer234 想用正規表示式來匹配每乙個字串。private static string sourcestr farmer1,1farmer234 private static string key farm...

字串 正規表示式匹配

此題出自牛客網的劍指offer專題 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a ...