什么是正則表達(dá)式
正則表達(dá)式是檢查、匹配字符串的表達(dá)式拭荤;
正則表達(dá)式是描述規(guī)則茵臭,主流語(yǔ)言都有良好的支持;
字符串校驗(yàn)舅世、查找與替換是正則表達(dá)式主要使用場(chǎng)景旦委;
字符范圍匹配
正則表達(dá)式 | 說(shuō)明 | 正確 | 錯(cuò)誤 |
---|---|---|---|
A | 精準(zhǔn)匹配單個(gè)字符 | A | a |
x|y | 允許出現(xiàn)的2個(gè)字符 | y | n |
[xyz] | 字符集合,允許出現(xiàn)集合內(nèi)任意單個(gè)字符 | z | c |
[a-z] [A-Z] [0-9] | 字符范圍 | a D 8 | A a A |
[^xyz] [^0-9] | 集合內(nèi)字符不允許出現(xiàn) | 0 A | y 8 |
元字符
正則表達(dá)式 | 說(shuō)明 | 正確 | 錯(cuò)誤 |
---|---|---|---|
\d | 匹配任意單個(gè)數(shù)字 | 8 | i |
\D | 匹配\d規(guī)則之外的任意單個(gè)字符 | i | 8 |
\w | 匹配任意單個(gè)字母數(shù)字下劃線 | Y | & |
\W | 匹配\w之外的任意單個(gè)字符 | & | Y |
\s | 匹配單個(gè)空格 | x | |
\n | 匹配單個(gè)換行符 | x | |
. | 匹配任意單個(gè)字符(換行符除外) | -- | -- |
\ . | 特殊字符雏亚,只匹配. | . | 1 |
多次重復(fù)匹配
正則表達(dá)式 | 說(shuō)明 | 正確 | 錯(cuò)誤 |
---|---|---|---|
A{3} | 精準(zhǔn)N次匹配 | AAA | AA |
A{3,} | 最少出現(xiàn)N次 | AAA | AA |
\d{3,5} | 約定出現(xiàn)最少次數(shù)與最大次數(shù) | 1234 | 12 |
\d* | 可以出現(xiàn)零次至無(wú)限次缨硝,相當(dāng)于{0,} | 1234 | -- |
\d+ | 最少出現(xiàn)一次,相當(dāng)于{1,} | 12 | |
\d? | 最多出現(xiàn)一次罢低,相當(dāng)于{0,1} | 1 | 12 |
定位匹配
正則表達(dá)式 | 說(shuō)明 | 正確 | 錯(cuò)誤 |
---|---|---|---|
^A.* | 頭匹配 | ABC | CBA |
.*A$ | 尾匹配 | CBA | ABC |
^A.*A$ | 全字匹配 | ACCCA | ACCCB |
貪婪模式與非貪婪模式
貪婪模式
默認(rèn)匹配規(guī)則
在滿足條件的情況下盡可能多匹配到字符串
示例:111222333 正則:\d{6,8}
匹配結(jié)果:11122233
非貪婪模式
在滿足條件的情況下盡可能少匹配到字符串
示例:111222333 正則:\d{6,8}?
匹配結(jié)果:111222
表達(dá)式分組
分組將"正則"分組為多個(gè)子表達(dá)式
示例:abababcdcdcd
正則表達(dá)式:(ab){3}(cd){3}