數(shù)量詞
數(shù)量詞,是專門規(guī)定一個字符集出現(xiàn)次數(shù)的規(guī)則;
- 今后,只要一個字符集在規(guī)則中可能連續(xù)反復(fù)出現(xiàn)多次,就要用數(shù)量詞以簡寫方式定義出現(xiàn)次數(shù)。
- 如何:數(shù)量詞緊跟在其修飾的字符集之后,默認(rèn)修飾相 鄰的前一個字符集
- 比如:手機(jī)號中連續(xù)的9個數(shù)字\d,可進(jìn)一步簡寫為:
1[3-8]\d{9}
\d{9} = \d*9
所以我們可以得出一個結(jié)論,字符集只管內(nèi)容,而數(shù)量詞只管數(shù)量。
問題:短信驗證碼的數(shù)字可能是4位或6位,不確定位數(shù)
數(shù)量詞包括兩大類:
- 有明確數(shù)量邊界的數(shù)量詞;
字符集{n}:表示字符集必須重復(fù)n次,不能多也不能少;
字符集{n,m}: 表示字符集至少重復(fù)n次,最多重復(fù)m次,比如: \d{4,6} 表示4到6位數(shù)字;
字符集{n,}:表示字符集匹配的內(nèi)容至少重復(fù)n次,多了不 限,比如:\d{6,} 表示6位以上數(shù)字;
2.正則為我們簡化了一些常用沒有明確數(shù)量邊界的數(shù)量詞;
* : 可有可無,多了不限,相當(dāng)于{0,};
? : 可有可無,最多一次, 相當(dāng)于{0,1};
+ : 至少一次,多了不限, 相當(dāng)于{1,};
練習(xí):
- 匹配手機(jī)短信中的驗證碼:連續(xù)的4~6位數(shù)字
答案: \d{4,6} - 匹配字符串中的一組連續(xù)空字符
答案: \s+
問題:屏蔽敏感詞時,屌絲把字換成拼音就查不出來了 。
錯誤的做法: 字符集只認(rèn)識單個字,不認(rèn)識cao是整體。

image.png
我解決這個問題,正則表達(dá)式又引入選擇和分組的概念。