正则表达式语法速查表
此页面通过汇总 RegExp
指南中文章的内容,提供了所有 RegExp
语法功能的总体备忘单。如果您需要有关特定主题的更多信息,请单击相应标题上的链接以访问完整文章,或前往 指南。
字符类
字符类 区分字符类型,例如区分字母和数字。
字符 | 含义 |
---|---|
[xyz] |
字符类: 匹配任何一个包含的字符。您可以使用连字符指定字符范围,但如果连字符出现在方括号中包含的第一个或最后一个字符,则它会被视为字面连字符,将其作为普通字符包含在字符类中。 例如, 例如, 例如, |
|
否定字符类: 匹配任何不在方括号中包含的字符。您可以使用连字符指定字符范围,但如果连字符出现在 注意:^ 字符也可能表示 输入的开头。 |
. |
通配符: 匹配除换行符以外的任何单个字符: |
\d |
数字字符类转义: 匹配任何数字(阿拉伯数字)。等效于 |
\D |
非数字字符类转义: 匹配任何不是数字(阿拉伯数字)的字符。等效于 |
\w |
单词字符类转义: 匹配基本拉丁字母中的任何字母数字字符,包括下划线。等效于 |
\W |
非单词字符类转义: 匹配任何不是基本拉丁字母中的单词字符的字符。等效于 |
\s |
空白字符类转义: 匹配单个空白字符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。等效于 |
\S |
非空白字符类转义: 匹配除空白字符以外的单个字符。等效于 |
\t |
匹配水平制表符。 |
\r |
匹配回车符。 |
\n |
匹配换行符。 |
\v |
匹配垂直制表符。 |
\f |
匹配换页符。 |
[\b] |
匹配退格键。如果您正在寻找单词边界断言 (\b ),请参见 断言。 |
\0 |
匹配 NUL 字符。不要在其后跟另一个数字。 |
\cX |
使用 插入符号表示法 匹配控制字符,其中 "X" 是 A–Z 中的字母(对应于代码点 |
\xhh |
匹配代码为 hh (两个十六进制数字)的字符。 |
\uhhhh |
匹配值为 hhhh (四个十六进制数字)的 UTF-16 代码单元。 |
\u{hhhh} 或 \u{hhhhh} |
(仅当设置了 u 标志时。) 匹配 Unicode 值为 U+hhhh 或 U+hhhhh (十六进制数字)的字符。 |
\p{UnicodeProperty} , \P{UnicodeProperty} |
Unicode 字符类转义: 根据其 Unicode 字符属性匹配字符:例如表情符号字符,或日语片假名字符,或中日韩汉字/假名字符等)。 |
\ |
指示应特殊处理或“转义”以下字符。它有两种行为方式之一。
注意:要按字面意义匹配此字符,请用它本身转义它。换句话说,要搜索 |
x|y |
析取: 匹配 "x" 或 "y"。每个由管道 ( 注意:析取是指定“一组选择”的另一种方法,但它不是字符类。析取不是原子——您需要使用 组 来使其成为更大模式的一部分。 |
断言
断言 包括边界,它们表示行和单词的开头和结尾,以及其他模式,以某种方式表明匹配是可能的(包括前瞻、后顾和条件表达式)。
边界类型断言
字符 | 含义 |
---|---|
^ |
输入边界开始断言: 匹配输入的开头。如果 注意: 此字符在字符类开头出现时具有不同的含义。 |
$ |
输入边界结束断言: 匹配输入的结尾。如果 |
\b |
单词边界断言: 匹配单词边界。这是单词字符不紧接另一个单词字符的位置,例如字母和空格之间。请注意,匹配的单词边界不包含在匹配结果中。换句话说,匹配的单词边界的长度为零。 示例
要匹配退格字符 ( |
\B |
非单词边界断言: 匹配非单词边界。这是前一个字符和下一个字符类型相同的位置:两者必须都是单词字符,或者两者必须都是非单词字符,例如两个字母之间或两个空格之间。字符串的开头和结尾被认为是非单词字符。与匹配的单词边界一样,匹配的非单词边界也不包含在匹配结果中。例如, |
其他断言
注意: ?
字符也可以用作量词。
字符 | 含义 |
---|---|
x(?=y) |
先行断言: 仅当 "x" 后面紧跟着 "y" 时匹配 "x"。例如, |
x(?!y) |
否定先行断言: 仅当 "x" 后面不紧跟着 "y" 时匹配 "x"。例如, |
(?<=y)x |
后行断言: 仅当 "x" 前面紧跟着 "y" 时匹配 "x"。例如, |
(?<!y)x |
否定后行断言: 仅当 "x" 前面不紧跟着 "y" 时匹配 "x"。例如, |
组和反向引用
组和反向引用 指示表达式字符的组。
字符 | 含义 |
---|---|
(x) |
捕获组: 匹配 正则表达式可以有多个捕获组。在结果中,捕获组的匹配通常在一个数组中,数组成员的顺序与捕获组中左括号的顺序相同。这通常只是捕获组本身的顺序。当捕获组嵌套时,这变得很重要。可以使用结果元素的索引 ( 捕获组会带来性能损失。如果您不需要调用匹配的子字符串,请使用非捕获括号(见下文)。
|
(?<Name>x) |
命名捕获组: 匹配 "x" 并将其存储在返回的匹配结果的 groups 属性中,使用 例如,要从电话号码中提取美国的区号,我们可以使用 |
(?:x) |
非捕获组: 匹配 "x" 但不记住匹配结果。匹配的子字符串无法从结果数组的元素 ( |
(?flags:x) , (?:flags-flags:x) |
修饰符: 仅对包含的模式启用或禁用指定的标志。仅 |
\n |
反向引用: 其中 "n" 是一个正整数。匹配正则表达式中第 n 个捕获组匹配的相同子字符串(从左括号开始计数)。例如, |
\k<Name> |
命名反向引用: 对 例如,
注意: |
量词
量词 指示要匹配的字符或表达式的数量。
字符 | 含义 |
---|---|
x* |
匹配前面的项 "x" 0 次或多次。例如, |
x+ |
匹配前面的项 "x" 1 次或多次。等效于 |
x? |
匹配前面的项 "x" 0 次或 1 次。例如, 如果紧跟在任何量词 |
x{n} |
其中 "n" 是一个非负整数,匹配前面的项 "x" 的 "n" 次精确出现。例如, |
x{n,} |
其中 "n" 是一个非负整数,匹配前面的项 "x" 的至少 "n" 次出现。例如, |
x{n,m} |
其中 "n" 和 "m" 是非负整数,并且 |
|
默认情况下,量词如
|