JetBrains Rider 2025.1 Help

正则表达式语法参考

本节是对 regexp syntax 的简要总结,可以用于创建 search and replace 以及问题导航模式。

正则表达式示例

请注意,JetBrains Rider 在您的代码中提供了广泛的 正则表达式辅助功能 ,例如语法高亮和 IntelliSense。

正则表达式语法参考

字符

描述

\

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

  • n 匹配字符 n。 "\n" 匹配一个换行符。

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

^

匹配输入的开头。

$

匹配输入的结尾。

*

匹配前面的字符零次或多次。 例如,“zo*”匹配 z或 zoo。

+

匹配前面的字符一次或多次。 例如,“zo+”匹配 zoo ,但不匹配 z。

?

匹配前一个字符零次或一次。 例如, a?ve? 与 ve 在 从未 中匹配。

.

匹配除换行符以外的任何单个字符。

( 子表达式 )

匹配 子表达式并记住匹配。 如果正则表达式的一部分用圆括号括起来,则正则表达式的那一部分将被分组在一起。 因此,正则表达式运算符可以应用于整个组。

  • 如果您需要在同一正则表达式中使用匹配的子字符串,您可以使用反向引用 \num 来检索它,其中 num = 1..n。

  • 如果您需要在当前正则表达式之外的某处引用匹配的子字符串(例如,在另一个正则表达式中作为替换字符串),可以使用美元符号 $num 来检索它,其中 num = 1..n。

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

x|y

匹配 x 或 y。 例如, z|wood 匹配 z 或 wood。 (z|w)oo 符合 zoo 或 wood。

{n}

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

{n,}

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

例如, o{2,} 不匹配 o 在 Bob 中,并且匹配 “foooood” 中所有的 o。

o{1,} 相当于 o+。 o{0,} 等同于 o*。

{n,m}

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

[xyz]

字符集。 匹配括号中任何一个字符。 例如, [abc] 匹配 a 在 plain 中。

[^xyz]

负字符组。 匹配未包含的任何字符。 例如, [^abc] 匹配 plain 字中的 p。

[a-z]

一系列字符。 匹配指定作用域内的任意字符。 例如,“[a-z]”匹配作用域内的任意小写字母字符 a到 z。

[^m-z]

负字符作用域。 匹配不在指定作用域内的任何字符。 例如, [^m-z] 匹配不在 m 到 z 作用域内的任何字符。

\b

匹配单词和空格之间的边界。 例如, er\b 匹配 never 中的 er ,但不匹配 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、2或3位长。

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

\0011 等价于 \001 & 1。

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

\xn

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

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

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

\$

找到一个 $ 字符。

\\$

在 搜索 字段中输入的这个正则表达式,意味着您尝试在行末找到 \ 字符。

\l

将下一个字符转换为小写。 在 replace字段中使用这种类型的正则表达式。

\u

将下一个字符转换为大写。 在 replace字段中使用这种类型的正则表达式。

\L

将 \E 以前所有后续字符的大小写改为小写。 在 replace 字段中使用此类正则表达式。

\U

将 \E 以前所有后续字符的大小写改为大写。 请在 替换字段中使用这种类型的正则表达式。

(?!)

这是一种“负向先行断言”模式。 例如, A(?!B) 表示 JetBrains Rider 会搜索 A ,但仅当其后不跟随 B 时。

(?=)

这是“正向前瞻”的模式。 例如, A(?=B) 意味着 JetBrains Rider 将搜索 A ,但仅在后面紧跟 B 时匹配。

(?<=)

这是“正前瞻”模式。 例如, (?<=B)A 表示 JetBrains Rider 将搜索 A ,但仅当在它之前有 B 时。

(?<!)

这是一个用于“负向先行断言”的模式。 例如, (?<!B)A 表示 JetBrains Rider 将会搜索 A ,但前提是没有 B 出现在它前面。

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

2025年 7月 31日