用途:
1. 判斷給定的整個字串是否滿足某pattern。
2. 在給定的整個字串中找出滿足某pattern的所有字串。給定字串裡是否存在某字串滿足某pattern。
上述pattern就是正規表示式。
任何的pattern都要@修飾,比如@"^[^/:*?""<>|\r\n]$",@"\d-\d"。
用途1)的pattern的首尾要有^,$ e.g. 資料夾名字的正規表示式 @"^[^/:*?""<>|\r\n]$"
用途2)的pattern的首尾不能有^,$。
string input3 = "adf234-56789sdf123-76589asdf";
string pattern3 = @"\d-\d";
字串34-56789,23-76589都會搜尋出來。
例子分析
1.使用多線模式,其中 ^ 和 $ 匹配每行的開頭和末尾,不是輸入字串的開頭和末尾。
預設情況下,$ 僅與輸入字串的末尾匹配。
如果指定了 regexoptions.multiline 選項,它將與換行符 (\n) 或輸入字串的末尾匹配。
但是,它並不與回車符/換行符的組合匹配。
若要成功匹配它們,使用子表示式 \r?$ 只替代 $。當然最終的match結果不含^,$所匹配的字元。
下面例子來自但是稍作修改,因為windows下換行是由\r\n組成的,所以這裡用writeline。
第乙個 pattern = @"^(\w+)\s(\d+)$";顯然不行。
$這裡要匹配\n,而因為windows下換行是由\r\n組成的,所以pattern裡還有要有個\r?,?必須加上,你不能假設換行肯定是由\r\n組成的。
乙個缺點就是匹配的match.value字元的最後有個\r.
1static
void
test3()219
20if (!matched)
21 console.writeline("
no matches.");
22console.writeline();
2324
//redefine pattern to handle multiple lines.
25 pattern = @"
^(\w+)\s(\d+)\r?$";
26 console.writeline("
with multiline option:");
27foreach (match match in
regex.matches(input, pattern, regexoptions.multiline))
2831 }
例2:找出輸入文字的非空的第一行。
1static
void
test4()
224 }
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...