正则表达式参考 |
简介 |
目录 |
快速参考 |
字符 |
基本功能 |
字符类 |
速记 |
定位符 |
单词边界 |
量词 |
Unicode |
捕获组和反向引用 |
命名组和反向引用 |
特殊组 |
模式修饰符 |
递归和平衡组 |
替换参考 |
字符 |
匹配的文本和反向引用 |
上下文和大小写转换 |
条件 |
本网站的更多内容 |
简介 |
正则表达式快速入门 |
正则表达式教程 |
替换字符串教程 |
应用程序和语言 |
正则表达式示例 |
正则表达式参考 |
替换字符串参考 |
书评 |
可打印 PDF |
关于本网站 |
RSS Feed 和博客 |
功能 | 语法 | 说明 | 示例 | JGsoft | .NET | Java | Perl | PCRE | PCRE2 | PHP | Delphi | R | JavaScript | VBScript | XRegExp | Python | Ruby | std::regex | Boost | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | Oracle | XML | XPath |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
字符类 | [ | 在字符类外部使用时,[ 开始一个字符类。在字符类内部,应用不同的规则。除非另有说明,本页上的语法仅在字符类内有效,而所有其他参考页上的语法在字符类内无效。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | |
文字字符 | 除 |
除列出的特殊字符之外的所有字符都是文字字符,它们会将自己添加到字符类中。 | [abc] 匹配 a、b 或 c | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
反斜杠转义元字符 | \(反斜杠)后跟 |
反斜杠转义特殊字符以抑制其特殊含义。 | [\^\]] 匹配 ^ 或 ] | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA | ECMA awk | 是 | 否 | 否 | 否 | 否 | 否 | 是 | 是 |
转义字符 | \ | 转义字符是添加反斜杠到字符类的文字字符。 | [\] 匹配 \ | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 基本 扩展 grep egrep awk | 基本 扩展 grep egrep | 否 | 是 | 是 | 是 | 是 | 是 | 否 | 否 |
范围 | -(连字符)位于两个令牌之间,每个令牌指定单个字符。 | 向字符类添加一系列字符。 | [a-zA-Z0-9] 匹配任何 ASCII 字母或数字 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
否定字符类 | ^(插入符号)紧跟在左方括号 [ 之后 | 否定字符类,使其匹配字符类中未列出的单个字符。 | [^a-d] 匹配 x(除 a、b、c 或 d 之外的任何字符) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
左方括号 | [ | 左方括号是添加左方括号到字符类的文字字符。 | [ab[cd]ef] 匹配 aef]、bef]、[ef]、cef] 和 def] | 是 | 是 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 |
嵌套字符类 | [ | 字符类中的左方括号开始嵌套字符类。 | [ab[cd]ef] 与 [abcdef] 相同,并匹配 a 和 f 之间的任何字母。 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符类减法 | [base-[subtract]] | 从“base”类中移除“subtract”类中的所有字符。 | [a-z-aeiuo] 匹配一个非元音的单个字母。 | 是 | 2.0–7.0 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 是 |
字符类交集 | [base&&[intersect]] | 将字符类缩减到“base”和“intersect”中同时存在的字符。 | [a-z&&[^aeiuo]] 匹配一个非元音的单个字母。 | V2 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符类交集 | [base&&intersect] | 将字符类缩减到“base”和“intersect”中同时存在的字符。 | [\p{Nd}&&\p{InThai}] 匹配一个单独的泰语数字。 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符转义 | \n、\r 和 \t | 分别将 LF 字符、CR 字符或制表符字符添加到字符类中。 | [\n\r\t] 行尾、回车或制表符。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA awk | ECMA awk | 是 | 字符串 | 字符串 | 字符串 | 字符串 | 否 | 是 | 是 |
字符转义 | \a | 将“警报”或“铃声”控制字符(ASCII 0x07)添加到字符类中。 | [\a\t] 匹配一个铃声或制表符字符。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 是 | awk | ECMA awk | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符转义 | \b | 将“退格”控制字符(ASCII 0x08)添加到字符类中。 | [\b\t] 匹配一个退格或制表符字符。 | 是 | 是 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA VC’12–VC’15 awk VC’08–VC’22 | ECMA awk | 是 | 否 | 否 | 否 | 否 | 否 | 是 | 是 |
字符转义 | \B | 将反斜杠添加到字符类中。 | [\B] 匹配 \ | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符转义 | \e | 将“转义”控制字符(ASCII 0x1B)添加到字符类中。 | [\e\t] 匹配一个转义或制表符字符。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 是 | 否 | ECMA awk | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符转义 | \f | 将“换页”控制字符(ASCII 0x0C)添加到字符类中。 | [\f\t] 匹配换页符或制表符。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA awk | ECMA awk | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
字符转义 | \v | 将“垂直制表符”控制字符(ASCII 0x0B)添加到字符类别,而不添加任何其他垂直空白。 | [\v\t] 匹配垂直制表符或制表符。 | 仅 V1 | 是 | 4–7 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 是 | 是 | 是 | 是 | ECMA awk | ECMA awk | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 类 | [:alpha:] | 匹配 POSIX 字符类别 中的一个字符。只能在 方括号表达式 中使用。 | [[:digit:][:lower:]] 匹配 0 到 9 或 a 到 z 中的一个字符 | ASCII | 否 | 否 | Unicode | ASCII | ASCII | 5.3.4 Unicode 5.0.0 代码页 | ASCII | ASCII | 否 | 否 | 否 | 否 | 1.9 Unicode 1.8 ASCII | Unicode | Unicode | Unicode | ASCII | ASCII | ASCII | ASCII | Unicode | 否 | 否 |
POSIX 类 | [:^alpha:] | 匹配不属于特定 POSIX 字符类别 的一个字符。只能在 方括号表达式 中使用。 | [5[:^digit:]] 匹配数字 5 或任何其他非数字字符。 | 否 | 否 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 3.7–3.10 错误 | 1.9 | 错误 | 是 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 否 | 否 |
POSIX 简写类 | [:d:]、[:s:]、[:w:] | 匹配 POSIX 字符类别“数字”、“空格”或“单词”中的一个字符。只能在 方括号表达式 中使用。 | [[:s:][:d:]] 匹配空格、制表符、换行符或 0 到 9 中的一个字符 | V2 ASCII | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | Unicode | Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 简写类 | [:l:] 和 [:u:] | 匹配 POSIX 字符类别“小写”或“大写”中的一个字符。只能在 方括号表达式 中使用。 | [[:u:]][[:l:]] 匹配 Aa 但不匹配 aA。 | V2 ASCII | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 简写类 | [:h:] | 匹配 POSIX 字符类别“空白”中的一个字符。只能在 方括号表达式 中使用。 | [[:h:]] 匹配空格。 | V2 ASCII | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.42–1.83 Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 简写类 | [:V:] | 匹配垂直空白字符。只能在 方括号表达式 中使用。 | [[:v:]] 匹配任何单个垂直空白字符。 | V2 ASCII | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.42–1.83 Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 类 | 任何受支持的 \p{…} 语法 | \p{…} 语法可以在字符类中使用。 | [\p{Digit}\p{Lower}] 匹配 0 到 9 或 a 到 z 中的一个 | 是 | 不适用 | 9 | 是 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 1.9 | 不适用 | 扩展 egrep | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 |
POSIX 类 | \p{Alpha} | 匹配 POSIX 字符类 中的一个字符。 | \p{Digit} 匹配任何单个数字。 | Unicode | 否 | ASCII | Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 Unicode | 否 | ECMA 扩展 egrep awk Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 类 | \p{IsAlpha} | 匹配 POSIX 字符类 中的一个字符。 | \p{IsDigit} 匹配任何单个数字。 | Unicode | 否 | 9 Unicode 4 ASCII | Unicode | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
POSIX 校对序列 | [.span-ll.] | 匹配 POSIX 校对序列。只能在 括号表达式 中使用。 | [[.span-ll.]] 在西班牙语区域设置中匹配 ll | 错误 | 否 | 否 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 否 | 否 | 否 | 3.7–3.10 错误 | 仅限 1.8 错误 | 失败 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 |
POSIX 字符等价 | [=x=] | 匹配 POSIX 字符等价。只能在 括号表达式 中使用。 | [[=e=]] 在法语区域设置中匹配 e、é、è 和 ê | 错误 | 否 | 否 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 否 | 否 | 否 | 3.7–3.10 错误 | 仅限 1.8 错误 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 |
功能 | 语法 | 说明 | 示例 | JGsoft | .NET | Java | Perl | PCRE | PCRE2 | PHP | Delphi | R | JavaScript | VBScript | XRegExp | Python | Ruby | std::regex | Boost | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | Oracle | XML | XPath |