1 限定符
1.1 ?
used? /* 表示字符d需要出现0次或1次 */
-----------
use /* 能匹配 */
used /* 能匹配 */
us /* 不能匹配 */
1.2 *
ab*c /* 表示b可以出现0次,或1次,或n次 */
-----------
ac /* 能匹配 */
abc /* 能匹配 */
abbbc /* 能匹配 */
abdc /* 不能匹配 */
ab /* 不能匹配 */
1.3 +
ab*c /* 表示b可以出现1次,或n次 */
-----------
ac /* 不能匹配 */
abc /* 能匹配 */
abbbc /* 能匹配 */
abdc /* 不能匹配 */
ab /* 不能匹配 */
1.4 {...}
ab{6}c /* 表示b能出现6次 */
ab{2,6}c /* 表示b能出现2~6次 */
ab{2,}c /* 表示b能出现2次以上 */
1.5 ()
(ab) /* 匹配ab字符串 */
--------------
abcabd /* 能匹配上ab ab */
acadaf /* 不能匹配 */
2 或运算
2.1 |
a (cat|dog)
----------
a dog /* 能匹配 */
a cat /* 能匹配 */
a tom /* 不能匹配 */
3 字符类
3.1 -
[a-zA-Z0-9]+ /* 匹配大小写字母和所有数字 */
3.2 ^
[^0-9]+ /* 表示需要除了数字之外的所有字符 */
4 元字符
4.1 \d和\D
\d+ 表示所有的数字
\D+ 与\d相反
4.2 \w 和\W
\w+ 表示所有的字母、数字、下划线
\W 与\w相反
4.3 \s 和\S
\s 表示所有的空格和TAB和换行符
\S 与\s相反
4.4 .
. 表示任意字符,但不包含换行符
4.5 ^
会去匹配行首
^a /* 只会去匹配行首的a */
-----------
abc /* 匹配到行首的a */
cba /* 匹配不到行末的a */
4.6 $
会区匹配行尾
a$ /* 只会去匹配行末的a */
-----------
abc /* 匹配不到行首的a */
cba /* 匹配到行末的a */
参考学习资料
B站UP主:奇乐编程学院
视频地址:https://www.bilibili.com/video/BV1da4y1p7iZ?from=search&seid=17857149323720293158&spm_id_from=333.337.0.0