閱讀934 返回首頁    go 阿裏雲 go 技術社區[雲棲]


正則表達式備忘錄


1)

. 匹配除換行符以外的任意字符
\w 匹配字母或數字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配任意的數字,例如:\d{2}表示前麵的數字連續出現2次,即2個數字。
\b 匹配單詞的開始或結束,也就是單詞的分界處,它隻匹配一個字符位置。
^ 匹配字符串的開始
$ 匹配字符串的結束

2)
* 表匹配次數的符號。重複零次或更多次 它代表的不是字符,也不是位置,而是數量——它指定*前邊的內容可以連續重複出現任 意次以使整個表達式得到匹配。
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次

3)
[] 匹配方括號裏麵的字符。例:[0-9]代表的含意與\d是完全一致的:即一位數字;[a-zA-Z]表任意一個英文字母。在方括號內隻匹配單個字符。

4)反義
\W 匹配任意不是字母,數字,下劃線,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數字的字符
\B 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個字母以外的任意字符

5)字符轉義用符號“\”,例:要顯示元字符.,要用\.表示。

6) | 指明兩項之間的一個選擇。要匹配 |,使用 \|

7)例子:

匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配中國郵政編碼:[1-9]\d{5}(?!\d)
匹配身份證:\d{15}|\d{18}


匹配單個字符的元字符
. 點號  匹配單個任意字符
[…] 字符組 匹配單個列出的字符
[^...] 排除型字符 匹配單個未列出的字符
\char 轉義字符 若char是元字符,或轉義序列無特殊含義時,匹配char對應的普通字符。
提供計數功能的元字符
 ? 問號 允許匹配一次,但非必須
 * 星號 可以匹配任意多次,也可以不匹配
 + 加號 至少需要匹配一次,至多可能匹配任意多次
{min,max} 區間量詞 至少要min次,至多允許max次
匹配位置的元字符
^ 脫字符 匹配一行的開頭位置
$ 美元符 匹配一行的結束位置
\< 單詞分界符 匹配單詞開始的位置
\> 單詞分界符 匹配單詞結束的位置
其他元字符
| 豎劃線 匹配任意分割的表達式
(...) 括號 限定多選結構的範圍,標注量詞作用的元素,為反向引用捕獲文本。
\1\2 反向引用 匹配之前的第一,第二組括號內的表達式匹配的文本

最後更新:2017-04-02 06:52:11

  上一篇:go cacti + squid
  下一篇:go Android國際化中用到的國家/地區 語言縮寫代碼