正则表达式学习笔记¶
本文的正则表达式方言为 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