參考:https://deerchao.cn/tutorials/regex/regex.htm#mission
入門
-
\bhi\b
查找hi,\b
并不匹配這些單詞分隔字符(空格,標(biāo)點符號或者換行)中的任何一個酝枢,它只匹配一個位置 -
\bhi\b.*\bLucy\b
hi后面不遠處跟著一個Lucy旺韭,.
是另一個元字符蓖乘,除了換行符以外的任意字符沿侈;*
同樣是元字符霹娄,它代表數(shù)量 -
0\d\d-\d\d\d\d\d\d\d\d
以0開頭觉啊,然后是兩個數(shù)字拣宏,然后是一個連字號“-”,最后是8個數(shù)字杠人,\d
是個新的元字符勋乾,匹配一位數(shù)字。
簡寫:0\d{2}-\d{8}
這里\d后面的{2}({8})的意思是前面\d必須連續(xù)重復(fù)匹配2次(8次)
元字符
*
重復(fù)0次和更多次嗡善,而+
則匹配重復(fù)1次或更多次辑莫,?
匹配重復(fù)0次或1次
.
匹配除換行符以外的任意字符
\w
匹配字母或數(shù)字或下劃線或漢字
\s
匹配任意的空白符
\d
匹配數(shù)字
\b
匹配單詞的開始或結(jié)束
^
匹配字符串的開始
$
匹配字符串的結(jié)束
重復(fù)
{n}
重復(fù)n次
{n,}
重復(fù)n次或更多次
{n,m}
重復(fù)n到m次
字符類
如果你想匹配沒有預(yù)定義元字符的字符集合,在方括號里列出它們
[aeiou]
匹配任何一個英文元音字母
[.?!]
匹配標(biāo)點符號(.或?或!)
分枝條件
如果滿足其中任意一種規(guī)則都應(yīng)該當(dāng)成匹配罩引,具體方法是用|把不同的規(guī)則分隔開
0\d{2}-\d{8}|0\d{3}-\d{7}
這個表達式能匹配兩種以連字號分隔的電話號碼:一種是三位區(qū)號各吨,8位本地號(如010-12345678),一種是4位區(qū)號袁铐,7位本地號(0376-2233445)
反義(難)
\W
匹配任意不是字母揭蜒,數(shù)字横浑,下劃線,漢字的字符
\S
匹配任意不是空白符的字符
\D
匹配任意非數(shù)字的字符
\B
匹配不是單詞開頭或結(jié)束的位置
[^x]
匹配除了x以外的任意字符
[^aeiou]
匹配除了aeiou這幾個字母以外的任意字符