推薦一個正則表達(dá)式的開源測試工具 接下來的demo都會使用這個工具進(jìn)行測試: https://github.com/firasdib/Regex101.git
常用元字符
代碼 說明
. 匹配除換行符以外的任意字符
\w 匹配字母或數(shù)字或下劃線
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞的開始或結(jié)束
^ 匹配行的開始
$ 匹配行的結(jié)束
測試1: 使用 \d 匹配數(shù)字

Paste_Image.png
常用反義元字符
代碼 說明
\W 匹配任意不是字母,數(shù)字,下劃線
\S 匹配任意不是空白符的字符
\D 匹配任意非數(shù)字的字符
\B 匹配不是單詞開頭或結(jié)束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個字母以外的任意字符
測試2: 使用 \D 匹配出非數(shù)字的字符

Paste_Image.png
常用重復(fù)限定字符
常用重復(fù)限定符
代碼 說明
* 重復(fù)零次或更多次
+ 重復(fù)一次或更多次
? 重復(fù)零次或一次
{n} 重復(fù)n次
{n,} 重復(fù)n次或更多次
{n,m} 重復(fù)n到m次
測試3: 找出 包含ld的所有字符

Paste_Image.png
轉(zhuǎn)義
轉(zhuǎn)義的作用:如果想要匹配出. *+? 這樣的元字符,因為他們自身帶有特殊語義,那么怎樣匹配出這樣的特殊字符呢?
辦法:這就需要對這些特殊的字符進(jìn)行轉(zhuǎn)義, 格式如下
. 轉(zhuǎn)義后 \.
* 轉(zhuǎn)義后 \*
+ 轉(zhuǎn)義后 \+
? 轉(zhuǎn)義后 \?
測試4: 找出*

Paste_Image.png