正則表達(dá)式30分鐘入門
正則表達(dá)式教程
常用的元字符
| 代碼 | 說明 |
|---|---|
. |
匹配除換行符以外的任意字符 |
\w |
匹配字母或數(shù)字或下劃線或漢字 |
\s |
匹配任意的空白符,包括空格,制表符(Tab),換行符,中文全角空格等 |
\d |
匹配數(shù)字 |
\b |
匹配單詞的開始或結(jié)束 |
^ |
匹配字符串的開始 |
$ |
匹配字符串的結(jié)束 |
常用的限定符
| 代碼/語法 | 說明 |
|---|---|
* |
重復(fù)零次或更多次 |
+ |
重復(fù)一次或更多次 |
? |
重復(fù)零次或一次 |
{n} |
重復(fù)n次 |
{n,} |
重復(fù)n次或更多次 |
{n,m} |
重復(fù)n次或m次 |
字符類
[0-9]代表的含意與\d就是完全一致的:一位數(shù)字
同理[a-z0-9A-Z_]也完全等同于\w(如果只考慮英文的話)“(”和“)”也是元字符
\(?0\d{2}[) -]?\d{8}
這個(gè)表達(dá)式可以匹配幾種格式的電話號(hào)碼,像(010)88886666,或022-22334455,或02912345678等。我們對(duì)它進(jìn)行一些分析吧:首先是一個(gè)轉(zhuǎn)義字符(,它能出現(xiàn)0次或1次(?),然后是一個(gè)0,后面跟著2個(gè)數(shù)字(\d{2}),然后是)或-或空格中的一個(gè),它出現(xiàn)1次或不出現(xiàn)(?),最后是8個(gè)數(shù)字(\d{8})。
常用的反義代碼
| 代碼/語法 | 說明 |
|---|---|
\W |
匹配任意不是字母,數(shù)字,下劃線,漢字的字符 |
\S |
匹配任意不是空白符的字符 |
\D |
匹配任意非數(shù)字的字符 |
\B |
匹配不是單詞開頭或結(jié)束的位置 |
[^x] |
匹配除了x以外的任意字符 |
[^aeiou] |
匹配除了aeiou這幾個(gè)字母以外的任意字符 |