asp.netRegex之學習與常用正則介紹

來源:互聯網
上載者:User


^ :(讀: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中等正則都是大同小義的,他們的規則也都差不多,不過正則是一件比較麻煩的事情很多程式員都只會最基本的。我想大家只要把上面的都會用了就差不多了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.