通配符、正则表达式与文本检索的介绍
为了方便检索文本,文本编辑器通常会带有「检索功能」。
比如「记事本」和「Word」都可以搜索,Word 还可以在高级模式中用「通配符」来匹配文本。
广告拦截网站也是使用了基于「通配符」的过滤器。
而「正则表达式」相当于通配符的增强版,在编程中广泛使用。
正则表达式
正则表达式是应用最广泛的一种文本筛查工具。
下面介绍一些常用语法,方便入门与查阅
限定符
?
:字符可有可无*
:字符可有多个或无+
:字符可有多个,但不能无{}
:字符自定义多少个,比如{2,4}
是 2-4 个
其他字符
()
:括号作为整体处理|
:「或」运算[]
:限制字符内容,比如[0-9A-Za-z]
,^
取反\d
:0-9
,\D
是非数字字符\w
:a-zA-Z_
,\W
是非单词字符\s
:制表符、换行符,\S
是非空白字符
.
:代表任意字符^
和$
:行首行尾,比如^d
和d$
指只匹配行首行尾的 d\b
:代表文字边界
匹配模式
- 贪婪匹配:默认模式,匹配字符长度最大情况
- 懒惰匹配:匹配字符串长度最小的情况
切换方式是加 ?
,比如 .+
改成 .+?
附录
资料
10分钟快速掌握正则表达式_哔哩哔哩_bilibili
Searching - voidtools :通配符、正则表达式学习
(6 封私信) BNF范式(巴科斯范式)到底是什么? - 知乎 (zhihu.com)
工具
RegExr: Learn, Build, & Test RegEx
regex101: build, test, and debug regex