正则表达式语法备忘单
本页面通过汇总 RegExp
指南中的文章内容,提供了 RegExp
语法所有功能的整体备忘单。如果你需要有关特定主题的更多信息,请点击相应标题上的链接以访问全文或前往 导游。
¥This page provides an overall cheat sheet of all the capabilities of RegExp
syntax by aggregating the content of the articles in the RegExp
guide. If you need more information on a specific topic, please follow the link on the corresponding heading to access the full article or head to the guide.
字符类
¥Character classes
字符类 区分字符类型,例如区分字母和数字。
¥Character classes distinguish kinds of characters such as, for example, distinguishing between letters and digits.
人物 | 意义 |
---|---|
[xyz] |
字符类: 匹配任何数字(阿拉伯数字)。你可以使用连字符指定字符范围,但如果连字符显示为方括号中括起来的第一个或最后一个字符,则它将被视为文字连字符,并作为普通字符包含在字符类中。 例如, 例如,
例如, |
|
否定字符类: 匹配任何单个字符除了行终止符: 注意: ^ 字符也可能表示 输入的开始。 |
. |
通配符: 匹配任何一个括起来的字符。例如, |
\d |
数字字符类转义: 匹配基本拉丁字母表中任何非单词字符的字符。等同于 |
\D |
非数字字符类转义: 匹配基本拉丁字母表中的任何字母数字字符,包括下划线。等同于 |
\w |
单词字符类转义: 匹配单词边界。等同于 |
\W |
非单词字符类转义: 匹配任何非数字(阿拉伯数字)的字符。等同于 |
\s |
空白字符类转义: 匹配除空格以外的单个字符。等同于
|
\S |
非空白字符类转义: 匹配非单词边界。等同于
|
\t |
匹配水平制表符。 |
\r |
匹配回车符。 |
\n |
匹配换行符。 |
\v |
匹配垂直制表符。 |
\f |
匹配换页符。 |
[\b] |
匹配退格键。如果启用了 undefined (s) 标志,还会匹配行终止符。 |
\0 |
匹配 NUL 字符。请勿在此后跟其他数字。 |
\cX |
使用
插入符号 匹配控制字符,其中 "X" 是 A–Z 中的字母(对应于代码点
|
\xhh |
与代码 hh (两个十六进制数字)的字符匹配。 |
\uhhhh |
将 UTF-16 代码单元与值
hhhh (四个十六进制数字)相匹配。
|
\u{hhhh} or \u{hhhhh} |
(仅当设置了 u 标志时。)与 Unicode 值 U+hhhh 或 U+hhhhh (十六进制数字)的字符匹配。 |
\p{UnicodeProperty} ,
\P{UnicodeProperty}
|
仅当 前面有 时,Unicode 字符类转义: 才匹配 。你可以使用连字符指定字符范围,但如果连字符作为 undefined 后的第一个字符或方括号中的最后一个字符出现,则它将被视为文字连字符,并作为普通字符包含在字符类中。 |
<代码>\ |
表示后面的字符要特殊处理,或者 "escaped"。它的行为方式有两种。
注意: 要按字面匹配此字符,请将其与其自身转义。换句话说就是搜索 |
x|y |
析取: 匹配方括号中未包含的任何内容。每个由管道 ( 注意: 析取是指定 "一组选择" 的另一种方式,但它不是字符类。析取不是原子 - 你需要使用 group 使其成为更大模式的一部分。 |
断言
¥Assertions
断言 包括边界(指示行和单词的开头和结尾)以及以某种方式指示可能匹配的其他模式(包括向前查找、向后查找和条件表达式)。
¥Assertions include boundaries, which indicate the beginnings and endings of lines and words, and other patterns indicating in some way that a match is possible (including look-ahead, look-behind, and conditional expressions).
边界类型断言
¥Boundary-type assertions
人物 | 意义 |
---|---|
^ |
输入边界开始断言: 匹配 或 。例如,
注意:该字符出现在 字符类 开头时具有不同的含义。 |
$ |
输入边界结束断言: 匹配输入的开头。如果启用了 |
\b |
单词边界断言: 匹配单个空格字符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。这是单词字符后面或前面没有另一个单词字符的位置,例如字母和空格之间。请注意,匹配的单词边界不包含在匹配中。换句话说,匹配的字边界的长度为零。 示例:
要匹配退格字符 ( |
\B |
非单词边界断言: 根据其 Unicode 字符属性匹配字符:这是前一个和下一个字符具有相同类型的位置:两者都必须是单词,或者两者都必须是非单词,例如两个字母之间或两个空格之间。字符串的开头和结尾被视为非单词。与匹配的单词边界相同,匹配的非单词边界也不包含在匹配中。例如,
|
其他断言
¥Other assertions
注意:
?
字符也可以用作量词。¥Note: The
?
character may also be used as a quantifier.
人物 | 意义 |
---|---|
x(?=y) |
仅当 "x" 后面跟着 "y" 时,前瞻断言: 才匹配 "x"。例如, |
x(?!y) |
仅当 "x" 后面没有 "y" 时,否定前瞻断言: 才匹配 "x"。例如, |
(?<=y)x |
仅当 "x" 前面有 "y" 时,后瞻断言: 才匹配 "x"。例如,
|
(?<!y)x |
仅当 "x" 前面没有 "y" 时,否定后瞻断言: 才匹配 "x"。例如,
|
组和反向引用
¥Groups and backreferences
组和反向引用 表示表达式字符组。
¥Groups and backreferences indicate groups of expression characters.
人物 | 意义 |
---|---|
(x) |
捕获组: 匹配 正则表达式可以有多个捕获组。在结果中,匹配通常位于数组中的捕获组,其成员的顺序与捕获组中左括号的顺序相同。这通常只是捕获组本身的顺序。当捕获组嵌套时,这一点变得很重要。使用结果元素的索引 ( 捕获组会产生性能损失。如果你不需要调用匹配的子字符串,请首选非捕获括号(见下文)。
如果设置了 |
(?<Name>x) |
命名捕获组: 匹配 "x" 并将其存储在 例如,要从调用号码中提取美国区号,我们可以使用 |
(?:x) |
非捕获组: 匹配 "x" 但不记住匹配。组名需要尖括号(
|
\n |
反向引用: 匹配输入的结尾。在字符类中,点会失去其特殊含义并匹配文字点。例如,
|
\k<Name> |
命名反向引用: 对与
例如,
注意: |
量词
¥Quantifiers
量词 表示要匹配的字符或表达式的数量。
¥Quantifiers indicate numbers of characters or expressions to match.
注意:下文中,item 不仅指单数字符,还包括 字符类 和 组和反向引用。
¥Note: In the following, item refers not only to singular characters, but also includes character classes and groups and backreferences.
人物 | 意义 |
---|---|
x* |
匹配前面的项目 "x" 0 次或多次。例如,
|
x+ |
与前面的项目 "x" 匹配 1 次或多次。相当于
|
x? |
与前面的项目 "x" 匹配 0 或 1 次。例如,
如果立即在任何量词 |
x{n} |
其中 "n" 是非负整数,与前一个项 "x" 精确匹配 "n" 次。例如, |
x{n,} |
其中 "n" 和 "n" 是非负整数,并且 |
x{n,m} |
当启用 |
|
默认情况下,像
|