^ :(讀:hat) 匹配一行的開始。例如Regex“^regex”能夠匹配字串“regex我會用”的開始,但是不能匹配“我會用regex”。
$ :類似^,匹配結尾。
| 表示 或 z|food 表示 z 或者 food 並非zood或food
[] 匹配括弧中的任何一個字元
. (點)匹配除n之外的任何單個字元。
*:限定符,匹配0至多個在它之前的子運算式,和萬用字元*沒關係。
+:限定符,類似* ,但必須出現一次。
? : 類似*,但是值是0次或1次。
{} :限定符號,表示前面的字元必須出現括弧內填的次數。如[0-9]{6} 表示0-9中的任一數字必須出現6次。
{,}:如[0-9]{6,}表示至少出現6次,最多無限次。[0-9]{6,10}表示至少6次,最多10次。
d:代表一個數字,等同於[0-9] \d →d
D:代表非數字,等同於[^0-9]
s:代表分行符號、Tab定位字元等空白字元 ,(空格、斷行符號、定位字元)
S:代表非空白字元(a0%$@@)
w:匹配字母或數字或底線或漢字,即能組成單詞的字元,除%&#@!$等字元。[a-zA-Z0-9_漢字]
W:非w ,等同於[^w] %
限定符
限定符提供了一種簡單方法,用於指定在模式中允許特定字元或字元集自身重複出現的次數。有 3 個非顯式限定符:
*,描述“出現 0 或多次”。
+,描述“出現 1 或多次”。
?,描述“出現 0 或 1 次”。
限定符始終引用限定符前(左邊)的模式,通常是單個字元,除非使用括弧建立模式組。下面是一些模式樣本及匹配的輸入。
模式
輸入(匹配)
fo*
foo、foe、food、fooot、“forget it”、funny、 puffy
fo+
foo、foe、food、foot、“forget it”
fo?
foo、foe、food、foot、“forget it”、funny、puffy
下面介紹一些常用的
匹配國內電話號碼:d{3}-d{8}|d{4}-d{7} 評註:匹配形式如 0511-4405222 或 021-87888822
匹配騰訊QQ號:[1-9][0-9]{4,} 評註:騰訊QQ號從10000開始
匹配中國郵遞區號:[1-9]d{5}(?!d) 評註:中國郵遞區號為6位元字
匹配身份證:d{15}|d{18} 評註:中國的身份證為15位或18位
匹配ip地址:d+.d+.d+.d+ 評註:提取ip地址時有用
匹配某範圍:@"<table>[sS]+?</table>"
匹配串連地址:</?(a|A)( .*?>|>)
匹配特定數字:
^[1-9]d*$ //匹配正整數
^-[1-9]d*$ //匹配負整數
^-?[1-9]d*$ //匹配整數
^[1-9]d*|0$ //匹配非負整數(正整數 + 0)
^-[1-9]d*|0$ //匹配非正整數(負整數 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮點數
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配負浮點數
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮點數
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非負浮點數(正浮點數 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮點數(負浮點數 + 0) 評註:處理大量資料時有用,具體應用時注意修正
匹配特定字串:
^[A-Za-z]+$ //匹配由26個英文字母組成的字串
^[A-Z]+$ //匹配由26個英文字母的大寫組成的字串
^[a-z]+$ //匹配由26個英文字母的小寫組成的字串
^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字串
^w+$ //匹配由數字、26個英文字母或者底線組成的字串
模式
說明
^d{5}$
5 個數值數字,如美國郵遞區號。
^(d{5})|(d{5}-d{4}$
5 個數值數字或 5 個數字-短劃線-4 個數字。匹配 5 位元字格式的美國郵遞區號,或 5 位元字 + 4 位元字格式的美國郵遞區號。
^(d{5}(-d{4})?$
與前一個相同,但更有效。使用 ? 可使模式中的 4 位元字成為可選部分,而不是要求分別比較不同的兩個模式(通過另一種方式)。
^[+-]?d+(.d+)?$
匹配任意有可選符號的實數。
^[+-]?d*.?d*$
與上一個相同,但也匹配Null 字元串。
^(20|21|22|23|[01]d)[0-5]d$
匹配 24 小時制時間值。
/*.**/
匹配 C 語言風格的注釋 /* ... */
1.驗證使用者名稱和密碼:("^[a-zA-Z]w{5,15}$")正確格式:"[A-Z][a-z]_[0-9]"組成,並且第一個字必須為字母 6~16位;
2.驗證電話號碼:("^(d{3.4}-)d{7,8}$")正確格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.驗證社會安全號碼(15位或18位元字):("^d{15}|d{18}$");
4.驗證Email地址:("^w+([-+.]w+)*@w+([-.]w+)* .w+([-.]w+)*$");
5.只能輸入由數字和26個英文字母組成的字串:("^[A-Za-z0-9]+$") ;
6.整數或者小數:^[0-9]+.{0,1}[0-9]{0,2}$
7.只能輸入數字:"^[0-9]*$"。
8.只能輸入n位的數字:"^d{n}$"。
9.只能輸入至少n位的數字:"^d{n,}$"。
10.只能輸入m~n位的數字:。"^d{m,n}$"
11.只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
12.只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
13.只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
14.只能輸入非零的正整數:"^+?[1-9][0-9]*$"。
15.只能輸入非零的負整數:"^-[1-9][]0-9"*$。
16.只能輸入長度為3的字元:"^.{3}$"。
17.只能輸入由26個英文字母組成的字串:"^[A-Za-z]+$"。
18.只能輸入由26個大寫英文字母組成的字串:"^[A-Z]+$"。
19.只能輸入由26個小寫英文字母組成的字串:"^[a-z]+$"。
20.驗證是否含有^%&',;=?$"等字元:"[^%& ',;=?$x22]+"。
21.只能輸入漢字:"^[u4e00-u9fa5]{0,}$"
22.驗證URL:"^http://([w-]+.)+[w-]+(/[w-. /?%&=]*)?$"。
23.驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式 為:"01"~"09"和"1"~"12"。
24.驗證一個月的31天:"^((0?[1-9])|((1|2) [0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。
總結,不管是在asp.net 中php jsp java中等正則都是大同小義的,他們的規則也都差不多,不過正則是一件比較麻煩的事情很多程式員都只會最基本的。我想大家只要把上面的都會用了就差不多了。