看nlp的時候,裡面有介紹正規表示式的,為了避免以後忘記,所以在這裡做乙個總結:
1 語法:
1.1 元字元。
. 匹配除 "/n" 之外的任何單個字元。要匹配包括 '/n' 在內的任何字元,使用象 '[./n]' 的模式。
/ 將下乙個字元標記為乙個特殊字元、或乙個原義字元、或乙個 後向引用、或乙個八進位制轉義符。例如,'n' 匹配字元 "n"。 '/n' 匹配乙個換行符。序列 '//' 匹配 "/" 而 "/(" 則匹配 "("。
^ 匹配字串(一下簡稱st)的開始位置。
$ 匹配st的結束位置。
1.2 字元出現次數(一下均用a來代表該字元)
a+ >=1次
a* 任意次數
a? 0或者1次
a a出現n次
a 至少n次
a >=n, <=m 次
1.3 選擇
[a1a2] 表示從中選擇乙個字元
[^a1a2]表示匹配非a1,a2的字元
[a-z]匹配從'a' 到 'z'的字元
1.4 分支
a1|a2 匹配a1或者a2,這裡a1,a2也可以使正規表示式。
1.5 反向引用 (**:http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm)
/b(/w+)/b/s+/1/b 可以用來匹配重複的單詞 ,像go go , 或者kitty kitty 。這個表示式首先是乙個單詞 ,也就是單詞開始 處和結束處之間的多於乙個的字母或數字 (/b(/w+)/b ),這個單詞會**獲到編號為1的分組中,然後是1個或幾個空白符 (/s+ ),最後是分組1中捕獲的內容(也就是前面匹配的那個單詞) (/1 )。
你也可以自己指定子表示式的組名 。要指定乙個子表示式的組名,請使用這樣的語法:(?/w+) (或者把尖括號換成' 也行:(?'word'/w+) ),這樣就把/w+ 的組名指定為word 了。要反向引用這個分組捕獲 的內容,你可以使用/k ,所以上乙個例子也可以寫成這樣:/b(?/w+)/b/s+/k/b 。
1.6 其他轉義
/t 分頁
/w 等同於[0-9a-za-z_]
/n 換行
/s 空格
2 示例:
e-mail: /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
國際網域名稱格式如下:
網域名稱由各國文字的特定字符集、英文本母、數字及「-」(即連字元或減號)任意組合而成, 但開頭及結尾均不能含有「-」,「-」不能連續出現 。 網域名稱中字母不分大小寫。網域名稱最長可達60個位元組(包括字尾.com、.net、.org等)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[/.][a-z]([/.][a-z])?$/i;
/內容/i 構成乙個不區分大小寫的正規表示式;
^ 匹配開始
$ 匹配結束
[a-z] e-mail字首必需是乙個英文本母開頭
([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字元,也是匹配的,*表示0個或者多個。
*表示0個或多個前面的字元.
[a-z0-9]* 匹配0個或多個英文本母或者數字
[-_]? 匹配0個或1「-」,因為「-」不能連續出現
[a-z0-9]+ 匹配1個或多個英文本母或者數字,因為「-」不能做為結尾
@ 必需有個有@
([a-z0-9]*[-_]?[a-z0-9]+)+ 見上面([a-z0-9]*[-_]?[a-z0-9]+)*解釋,但是不能為空,+表示乙個或者為多個。
[/.] 將特殊字元(.)當成普通字元
[a-z] 匹配2個至3個英文本母,一般為com或者net等.
([/.][a-z])? 匹配0個或者1個[/.][a-z](比如.cn等) 我不知道一般.com.cn最後部份是不是都是兩位的,如果不是請修改為.
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...