正则表达式学习笔记1
1.直接匹配
匹配什么直接打出
例如文本:123abc
输入:123abc
结果123abc
2.特殊字符
字符一:.(点字符)
匹配一个任意字符
例如文本:123 124 1254 126 1278
输入:12.
结果:123 124 125 126 127
字符二:\(转义字符)
如果要匹配 .(点字符)再点前加 \
例如文本:123. 1234
输入:123\.
结果:123.
如果要匹配 \(转义字符)也在前加 \
例如文本:123. 123\
输入:123\\
结果:123\
字符三:[ ](字符集合)
控制字符匹配范围
例如文本:abc bbc cbc
输入:[ab]bc
结果:abc bbc
不区分大小写
例如文本:Abc abc Bbc
输入:[Aa]bc
结果:Abc abc
字符四:-(范围)
如果字符区间过大者可以在字符间加- (如果-在字符集合外,匹配的是-本身)
例如:[0-9]等价[0123456789] [a-z]等价[abcdefghijklmnopqrstuvwxyz]
通过这种方法让表达式更简洁
字符五:^(取非字符)
加在集合中不匹配^后面的字符
例如文本:123 223 abc B23
输入:[^a-z]23
结果:123 223 B23
如果要搜索字符本身要加转义字符\
字符六:元字符
[\b] 回退 backspace键
\f 换页
\n 换行
\r 回车
\t 制表符Tab键
\v 垂直制表符
可以用于字符替换
字符七:类元字符
\d等价[0-9]
\D等价[^0-9]
\w等价[a-zA-Z0-9_]
\W等价[^a-zA-Z0-9_]
\s等价[\f\t\v\n\r]
\S等价[^\f\t\v\n\r]
([\b]既不在\s,也不再\S)
匹配16进制(\x)或2(\0)进制数字用
例如文本:19AE 或 010010
输入:\x19AE 或 \0010010
结果:19AE 或 010010
匹配ctrl加任意键用(\c)
例如输入:\cZ 匹配 ctrl+Z
与Unicode编码有关的匹配字符(\p)
用于增强可读性
\p{Emoji} 匹配表情
.............................
字符八:POSIX字符类
不是所有语言都支持
[:upper:]大写等价于[A-Z]
[:digital:]任意数字等价\d或[0-9]
..................................
(大部分功能上面都有,且上面兼容性更强)
学习的教程来源:
https://www.bilibili.com/video/BV1xW4y1X7Es?p=1&vd_source=4452f35caeba35162f6b73e10c1f213a

