跳转至

正则表达式学习笔记

本文的正则表达式方言为 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