CLion教程-正则表达式语法参考
本节是用于创建搜索和替换以及问题导航模式的正则表达式的简要摘要。
正则表达式语法参考
字符 | 描述 | |
---|---|---|
\ | 将下一个字符标记为特殊字符或文字。例如:n 匹配字符 n。 "n" 匹配换行符。序列 \\ 匹配 \ ,\( 匹配 ( 。 | |
^ | 匹配输入的开头。 | |
$ | 匹配输入的结尾。 | |
* | 匹配前面的字符零次或多次。例如,"zo" 匹配 z 或 zoo*。 | |
+ | 匹配前面的字符一次或多次。例如,"zo+" 匹配 zoo,但不匹配 z。 | |
? | 匹配前面的字符零次或一次。例如,a?ve? 匹配 never 中的 ve 。 | |
. | 匹配任何单个字符,除了换行符。 | |
( 子表达式) | 匹配 子表达式 并记住匹配。如果正则表达式的一部分被括在括号中,那么正则表达式的这部分被分组在一起。因此,可以将正则表达式运算符应用于整个组。如果需要在同一正则表达式中使用匹配的子字符串,可以使用反向引用 \num 检索它,其中 num = 1..n 。如果需要在当前正则表达式之外的某处引用匹配的子字符串(例如,在另一个正则表达式中作为替换字符串),可以使用美元符号 $num 来检索它,其中 num = 1..n 。如果需要将括号字符包含在 子表达式 中,请使用 \( 或 \) 。 | |
x ` | ` y | |
{n } | n 是非负整数。恰好匹配 n 次。例如,o{2} 不匹配 Bob 中的 o,但匹配 foooood 中的前两个 o。 | |
{n ,} | n 是非负整数。至少匹配 n 次。例如,o{2,} 不匹配 Bob 中的 o,匹配 "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] 匹配 plain 中的 a。 | |
[^ 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_] 。在 search 字段中使用。 | |
\W | 匹配任何非单词字符。等效于 [^A-Za-z0-9_] 。 | |
\ num | 匹配 num,其中 num 是正整数,表示对已记住的匹配的引用。例如,(.)\1 匹配两个连续的相同字符。 | |
\ n | 匹配 n,其中 n 是一个八进制转义值。八进制转义值应为 1、2 或 3 位数字。例如,\11 和 \011 都匹配制表符字符。\0011 等同于 \001 &1。八进制转义值不得超过 256。如果超过,只有前两位数字组成表达式。允许在正则表达式中使用 ASCII 码。 | |
\x n | 匹配 n,其中 n 是一个十六进制转义值。十六进制转义值必须恰好为两位数字。例如,\x41 匹配 A 。 \x041 等同于 \x04 &1 。允许在正则表达式中使用 ASCII 码。 | |
\$ | 查找 $ 字符。 | |
\\$ | 在 search 字段中输入此正则表达式,表示您正试图在行尾找到一个 \ 字符。 | |
\l | 将下一个字符的大小写更改为小写。在 replace 字段中使用此类型的正则表达式。 | |
\u | 将下一个字符的大小写更改为大写。在 replace 字段中使用此类型的正则表达式。 | |
\L | 将下一个字符之后的所有后续字符的大小写更改为小写,直到 \E 。在 replace 字段中使用此类型的正则表达式。 | |
\U | 将下一个字符之后的所有后续字符的大小写更改为大写,直到 \E 。在 replace 字段中使用此类型的正则表达式。 | |
(?!) | 这是“负向前瞻”的模式。例如,A(?!B) 表示 CLion 将搜索 A ,但仅当不跟随 B 时才匹配。 | |
(?=) | 这是“正向前瞻”的模式。例如,A(?=B) 表示 CLion 将搜索 A ,但仅当跟随 B 时才匹配。 | |
(?<=) | 这是“正向后瞻”的模式。例如,(?<=B)A 表示 CLion 将搜索 A ,但仅当其前面有 B 时才匹配。 | |
(?<!) | 这是“负向后瞻”的模式。例如,(?<!B)A 表示 CLion 将搜索 A ,但仅当其前面没有 B 时才匹配。 |
小技巧与技巧
CLion提供意图操作来检查正则表达式的有效性,并在一个草稿区中编辑正则表达式。将插入符号放在正则表达式上,然后按下Alt+Enter。在这种上下文中可用的意图操作建议列表会出现:
- 选择“检查正则表达式”,然后按Enter。弹出的对话框在上方窗格中显示当前的正则表达式。在下方窗格中,键入此表达式应匹配的字符串。如果正则表达式与输入的字符串匹配,CLion会显示正则表达式旁边的绿色勾号。如果正则表达式不匹配,则显示 。
- 选择“编辑正则表达式片段”,然后按Enter。正则表达式将在编辑器的单独选项卡中打开进行编辑。请注意,这仅是一个草稿区域,不会实际创建文件:
在草稿区域键入时,所有更改都会与原始正则表达式同步。要关闭草稿区域,请按Ctrl+F4。