Regex 参考 |
简介 |
目录 |
快速参考 |
字符 |
基本功能 |
字符类 |
速记 |
锚点 |
单词边界 |
限定符 |
Unicode |
捕获组和反向引用 |
命名组和反向引用 |
特殊组 |
模式修饰符 |
递归和平衡组 |
替换参考 |
字符 |
匹配文本和反向引用 |
上下文和大小写转换 |
条件 |
本网站的更多内容 |
简介 |
正则表达式快速入门 |
正则表达式教程 |
替换字符串教程 |
应用程序和语言 |
正则表达式示例 |
正则表达式参考 |
替换字符串参考 |
书籍评论 |
可打印 PDF |
关于本网站 |
RSS 提要和博客 |
本网站上的正则表达式参考既可用作所有可用 regex 语法的参考,也可作为对 教程 中讨论的正则表达式风格所支持的功能的比较。 参考表 包含了大量的信息。为了充分利用它们,请按照此图例学习如何阅读它们。
这些表针对每个正则表达式功能有六列。前四列解释了该功能。
功能 | 该功能的名称,它还用作教程中相关部分的链接。 |
---|---|
语法 | 此功能的实际 regex 语法。如果语法是固定的,则简单地显示为该语法。如果语法有可变元素,则描述该语法。 |
描述 | 该功能的作用的摘要。 |
示例 | 演示该功能的功能性正则表达式。 |
最后两列指示您选择的两种正则表达式风格是否支持此特定功能。您可以使用表上方的下拉列表更改风格。有许多可能的指示符。
是 | 此风格的所有版本都支持此功能。 |
3.0 | 此风格的 3.0 版及所有更高版本都支持此功能。早期版本不支持它。 |
仅 2.0 | 仅版本 2.0 支持此功能。早期和更高版本不支持它。 |
2.0–2.9 | 仅版本 2.0 到 2.9 支持此功能。早期和更高版本不支持它。 |
Unicode | 此功能在该风格的所有版本中都适用于 Unicode 字符。 |
代码页 | 此功能适用于此版本的所有版本中的活动代码页中的字符。 |
ASCII | 此功能仅适用于此版本的所有版本中的 ASCII 字符。 |
3.0 Unicode | 此功能适用于此版本的 3.0 及更高版本中的 Unicode 字符。早期版本根本不支持此功能。 |
3.0 Unicode 2.0 ASCII | 此功能适用于此版本的 3.0 及更高版本中的 Unicode 字符。它适用于 2.0 至 2.9 版本中的 ASCII 字符。早期版本根本不支持此功能。 |
3.0 Unicode 2.0 代码页 | 此功能适用于此版本的 3.0 及更高版本中的 Unicode 字符。它适用于 2.0 至 2.9 版本中的活动代码页中的字符。早期版本根本不支持此功能。 |
字符串 | regex 版本不支持此语法。但此 regex 版本通常与之一起使用的编程语言中的字符串文字支持此语法。 |
3.0 1.0 字符串 | 此 regex 版本的 3.0 及更高版本支持此语法。regex 版本的早期版本不支持此语法。但此 regex 版本通常与之一起使用的编程语言中的字符串文字自 1.0 版本以来就支持此语法。 |
选项 | 如果您设置特定选项或在前面加上特定 模式修饰符,此 regex 版本的所有版本都支持此功能。 |
选项 3.0 | 如果您设置特定选项或在前面加上特定 模式修饰符,此 regex 版本的 3.0 及所有更高版本都支持此功能。早期版本要么根本不支持该语法,要么不支持模式修饰符将语法的行为更改为该功能所描述的内容。 |
3.0 2.0 失败 | 此 regex 版本的 3.0 及所有更高版本都支持此功能。3.0 之前的 2.0 所有更高版本都识别该语法,但始终无法匹配此 regex 令牌。2.0 之前的版本不支持该语法。 |
否 | 此种风格的任何版本均不支持此功能。未给出此语法实际执行的操作的任何指示。相同的语法可能用于参考表中其他地方指示的不同功能。或者,语法可能触发错误,或者可能被解释为纯文本。 |
不适用 | 此功能不适用于此正则表达式风格。描述参考表中较早引入的特定语法行为的功能对于根本不支持该语法的风格显示为不适用。 |
失败 | 此风格识别语法,并且使用它的正则表达式有效,但此特定正则表达式标记始终无法匹配。仅当通过交替或量词使此标记变为可选时,正则表达式才能找到匹配项。 |
2.0–2.9 失败 | 2.0 至 2.9 版本识别语法,但始终无法匹配此正则表达式标记。早期和晚期版本不识别语法或将其视为语法错误。 |
忽略 | 此风格识别语法,但它不执行任何有用的操作。此特定正则表达式标记始终找到零长度匹配项。 |
错误 | 此风格识别语法,但将其视为语法错误。 |
当此图例显示“所有版本”或“无版本”时,表示参考表涵盖的每个风格的所有或无版本
JGsoft | V1:EditPad 6 和 7;PowerGREP 3 和 4;AceText 3 V2:EditPad 8;PowerGREP 5;AceText 4 |
---|---|
.NET | 1.0–1.1:原始 .NET 框架的前 2 个版本 2.0–7.0:.NET Framework 2.0–4.8、.NET Core 1.0.0–3.1.0 和 .NET 5.0–7.0 1.0–7.0:.NET Framework 和 .NET Core 的所有版本 |
Java | 4–21 |
Perl | 5.8–5.32 |
PCRE | 4.0–8.45 |
PCRE2 | 10.00–10.39 |
PHP | 5.0.0–8.1.24 |
Delphi | XE–XE8 和 10–10.4 和 11;仅 TRegEx;也适用于 C++Builder XE–XE8 和 10–10.4 和 11 |
R | 2.14.0–4.2.1 |
JavaScript | Chrome、Edge 和 Firefox 的最新版本 |
VBScript | 怪癖模式下的 VBscript 和 Internet Explorer |
XRegExp | 2.0.0–5.1.0 |
Python | 2.4–3.12 |
Ruby | 1.8–3.2 |
std::regex | Visual C++ 2008–2022(Dinkumware std 库) |
boost::regex | 1.38–1.39 & 1.42–1.83 |
Tcl ARE | 8.4–8.6 |
POSIX BRE | IEEE Std 1003.1 |
POSIX ERE | IEEE Std 1003.1 |
GNU BRE | |
GNU ERE | |
Oracle | 10gR1、10gR2、11gR1、11gR2、12c |
XML | 1.0–1.1 |
XPath | 2.0–3.1 |
对于 .NET 风格,某些功能用“ECMA”或“非 ECMA”表示。这意味着仅当设置 RegexOptions.ECMAScript 时或未设置时才支持该功能。当设置 RegexOptions.ECMAScript 时,用“非 ECMA Unicode”表示的功能匹配 ASCII 字符,而当未设置 RegexOptions.ECMAScript 时,则匹配 Unicode 字符。适用于 .NET 2.0 或更高版本的所有内容也适用于任何版本的 .NET Core。从 VS 2012 开始,Visual Studio IDE 使用非 ECMA .NET 风格。
对于 std::regex 和 boost::regex 风格,有附加指示符 ECMA、basic、extended、grep、egrep 和 awk。当出现其中一个或多个指示符时,这意味着仅当在编译正则表达式时指定其中一种语法时才支持该功能。在宽字符字符串上使用 std::wregex 或 boost::wregex 时,带有 Unicode 指示符的功能匹配 Unicode 字符。在替换字符串引用中,附加指示符为 sed 和 default。当出现其中一个指示符时,仅当将 match_flag_type::format_sed 传递给 regex_replace() 或不传递时才支持该功能。对于 boost,还有一个附加替换指示符“all”,表示仅当将 match_flag_type::format_all 传递给 regex_replace() 时才支持该功能。
对于 PCRE2 风格,某些替换字符串功能用“extended”表示。这意味着仅当将 PCRE2_SUBSTITUTE_EXTENDED 传递给 pcre2_substitute 时才支持该功能。
| 快速入门 | 教程 | 工具和语言 | 示例 | 参考 | 书籍评论 |
| 简介 | 目录 | 快速参考 | 字符 | 基本功能 | 字符类 | 简写 | 锚 | 单词边界 | 量词 | Unicode | 捕获组和反向引用 | 命名组和反向引用 | 特殊组 | 模式修饰符 | 递归和平衡组 |
页面 URL:https://regexper.cn/reference.html
页面上次更新时间:2023 年 10 月 16 日
网站上次更新时间:2024 年 3 月 15 日
版权所有 © 2003-2024 Jan Goyvaerts。保留所有权利。