通配符、正则表达式与文本检索的介绍

通配符、正则表达式与文本检索的介绍

为了方便检索文本,文本编辑器通常会带有「检索功能」。
比如「记事本」和「Word」都可以搜索,Word 还可以在高级模式中用「通配符」来匹配文本。
广告拦截网站也是使用了基于「通配符」的过滤器。
而「正则表达式」相当于通配符的增强版,在编程中广泛使用。

正则表达式

正则表达式是应用最广泛的一种文本筛查工具。
下面介绍一些常用语法,方便入门与查阅

限定符

  • ? :字符可有可无
  • * :字符可有多个或无
  • + :字符可有多个,但不能无
  • {} :字符自定义多少个,比如 {2,4} 是 2-4 个

其他字符

  • () :括号作为整体处理
  • | :「或」运算
  • [] :限制字符内容,比如 [0-9A-Za-z]^ 取反
    • \d0-9\D 是非数字字符
    • \wa-zA-Z_\W 是非单词字符
    • \s:制表符、换行符,\S 是非空白字符
  • . :代表任意字符
  • ^$ :行首行尾,比如 ^dd$ 指只匹配行首行尾的 d
  • \b :代表文字边界

匹配模式

  • 贪婪匹配:默认模式,匹配字符长度最大情况
  • 懒惰匹配:匹配字符串长度最小的情况

切换方式是加 ? ,比如 .+ 改成 .+?

附录


资料
10分钟快速掌握正则表达式_哔哩哔哩_bilibili
Searching - voidtools :通配符、正则表达式学习
(6 封私信) BNF范式(巴科斯范式)到底是什么? - 知乎 (zhihu.com)

工具
RegExr: Learn, Build, & Test RegEx
regex101: build, test, and debug regex

你可能感兴趣的:(正则表达式)