WebStorm 2025.2 Help

正则表达式语法参考

本节简要总结了 正则表达式语法 ,可用于创建 查找和替换以及问题导航模式。

RegEx 语法参考

字符

描述

\

将下一个字符标记为特殊字符或字面值字符。 例如:

  • n 匹配字符 n\n 匹配换行符。

  • 序列 \\ 匹配 \ ,而 \( 匹配 (

^

匹配输入开始处。

$

匹配输入结束处。

*

匹配前一个字符零次或多次。 例如, zo* 匹配 zzoo

+

匹配前一个字符一次或多次。 例如, zo+ 匹配 zoo ,但不匹配 z

?

匹配前一个字符零次或一次。 例如, a?ve? 匹配 ve 中的 never

.

匹配除换行符之外的任意一个字符。

( 子表达式 )

匹配 子表达式 并记住匹配内容。 如果正则表达式的一部分用括号括起来,则该部分将作为一个整体进行分组。 因此,可以将正则表达式运算符应用于整个分组。

  • 如果需要在当前正则表达式中使用匹配的子字符串,可以使用反向引用 \num 来提取,其中 num = 1..n

  • 如果需要在当前正则表达式之外的其他位置(例如另一个正则表达式中的替换字符串)使用匹配的子字符串,可以使用美元符号 $num 来提取,其中 num = 1..n

  • 如果需要在 子表达式 中包含括号字符,请使用 \(\)

x|y

匹配 xy。 例如, z|wood 匹配 zwood(z|w)oo 匹配 zoowood

{n}

n 是非负整数。 匹配 恰好n 次。 例如, o{2} 不匹配 o 中的 Bob ,但匹配 foooood 中前两个 o。

{n,}

n 是非负整数。 匹配 至少n 次。

例如, o{2,} 不匹配 Bob 中的 o ,但匹配 food 中所有的 o。

o{1,} 等同于 o+o{0,} 等同于 o*

{n,m}

mn 是非负整数。 匹配 至少 n 次, 至多 m 次。 例如, o{1,3} 匹配 food 中的前三个 o。 o{0,1} 等效于 o?

[xyz]

字符集。 匹配任意一个包含的字符。 例如, [abc] 匹配 a 中的 plain

[^xyz]

负字符集。 匹配不包含的任意字符。 例如, [^abc] 匹配 p 中的 plain

[a-z]

字符范围。 匹配指定范围内的任一字符。 例如, [a-z] 匹配从 az 的任意小写字母字符。

[^m-z]

负字符范围。 匹配不在指定范围内的任意字符。 例如, [^m-z] 匹配不在从 mz 范围内的任意字符。

\b

匹配单词边界,即单词与空格之间的位置。 例如, er\b 匹配 er 中的 never ,但不匹配 verb 中的 er

\B

匹配非单词边界。 ea*r\B 匹配 never early 中的 ear

\d

匹配数字字符。 等效于 [0-9]

\D

匹配非数字字符。 等效于 [^0-9]

\f

匹配换页符。

\n

匹配换行符。

\r

匹配回车符。

\s

匹配包括空格、制表符、换页符等在内的任意空白字符。 等效于 [ \f\n\r\t\v]

\S

匹配非空白字符。 等效于 [^ \f\n\r\t\v]

\t

匹配制表符。

\v

匹配垂直制表符。

\w

匹配包括下划线在内的任意单词字符。 等效于 [A-Za-z0-9_]。 在搜索字段中使用。

\W

匹配非单词字符。 等效于 [^A-Za-z0-9_]

\num

匹配 num ,其中 num 是一个正整数,表示对已记忆匹配的引用。

例如, (.)\1 匹配两个连续相同的字符。

\n

匹配 n ,其中 n 是八进制转义值。 八进制转义值应为 1 到 3 位数字。

例如, \11\011 都匹配制表符。

\0011 等效于 \001 & 1

八进制转义值不得超过 256。 如果超过,表达式仅由前两位数字组成。 允许在正则表达式中使用 ASCII 码。

\xn

匹配 n ,其中 n 是十六进制转义值。 十六进制转义值必须正好为两位数字。

例如, \x41 匹配 A\x041 等效于 \x04 & 1

允许在正则表达式中使用 ASCII 码。

\$

查找一个字符 $

\\$

搜索字段中的此 regex 表示您正尝试查找位于行尾的字符 \

\l

将下一个字符转换为小写。 在替换字段中使用此类型的 regex。

\u

将下一个字符转换为大写。 在替换字段中使用此类型的 regex。

\L

将所有后续字符,直到 \E ,转换为小写。 在替换字段中使用此类型的 regex。

\U

将所有后续字符,直到 \E ,转换为大写。 在替换字段中使用此类型的 regex。

(?!)

这是一个负向前瞻模式。 例如, A(?!B) 表示 WebStorm 将搜索 A ,但仅当其后不跟随 B

(?=)

这是一个正向前瞻模式。 例如, A(?=B) 表示 WebStorm 将搜索 A ,但仅当其后跟随 B 时才匹配。

(?<=)

这是一个正向后顾模式。 例如, (?<=B)A 表示 WebStorm 将搜索 A ,但仅当其前有 B 时。

(?<!)

这是一个负向后顾模式。 例如, (?<!B)A 表示 WebStorm 将搜索 A ,但仅当其前没有 B 时。

由于 WebStorm 支持所有标准正则表达式语法,您可以查看 https://www.regular-expressions.info 以获取更多关于语法的信息。

技巧提示

WebStorm 提供意图操作以 检查正则表达式的有效性并编辑正则表达式。 将插入符号置于正则表达式处,并按 Alt+Enter。 将在此上下文中显示可用的意图操作建议列表:

检查正则表达式
  • 选择 检查 RegExp ,然后按 Enter。 弹出的对话框在上窗格中显示当前正则表达式。 在下窗格中输入此表达式应匹配的字符串。 如果正则表达式匹配输入的字符串,WebStorm 会在该 regex 旁显示一个绿色对号。 如果正则表达式不匹配,则会显示 错误图标

    包含当前正则表达式的对话框
  • 选择 编辑 RegExp 片段 ,然后按 Enter。 正则表达式将在编辑器中一个单独的分割标签页中打开以供编辑。 请注意,这只是一个草稿区,未实际创建任何文件:

    包含当前正则表达式的临时文件

    当您在草稿区中输入内容时,所有更改将与原始正则表达式同步。 要关闭草稿区,请按 Ctrl+F4

最后修改日期: 2025年 9月 26日