正则表达式学习笔记¶
本文的正则表达式方言为 Visual Studio Code 正则表达式方言。目前来看,该应用使用的是 rust 的正则表达式引擎。
正则表达式由表达式、量词和断言构成。
表达式:匹配单个字符¶
[ABC]
A 或者 B 或者 C
[A-Z]
[0-9]
[a-z0-9]
范围
[^\n]
[^0-9]
不是 ...
\d
数字
\D
非数字
\s
空白
\S
非空白
\w
单词,字符数字下划线
\W
非单词
.
任意字符
量词:描述字符个数¶
x{1,3}
一个到三个 x
[0-9]{0,2}
0 个到两个数字
0{1,1} = 0
只有一个
\d? = \d{0,1}
? 代表 0 个或一个
E+ = E{1,}
+ 代表 1 个或多个
E* = E{0,}
* 代表 0 个或 1 个或多个
断言:描述这个字符串周边的一些性质¶
^
:从头开始匹配(文件头)
$
:匹配到末尾(文件尾)
\b
边界
\B
非单词的边界
(以下的不会被纳入匹配范围,但是会被匹配所参考)
(?<=E)
紧跟于 E
(?!E)
没有紧跟于 E
(?=E)
紧跟E
(?!E)
没有紧跟E
括号和或¶
(mail|letter)
用来取 mail 或 letter
替换过程中的变量¶
()
包围起来的是变量,可以用在变量替换中
$1
代表第一个括号,$2
代表第二个括号
注意括号后面如果跟量词可能会有奇怪的bug