- 首页
- 作品
- 正则表达式30分钟入门教程
- 正则表达式引擎对比
正则表达式引擎对比
说明:本文内容翻译后整理自regular-expressions.mobi。原网址只有使用手机浏览器才能正常访问。
正则表达式引擎/说明
名称 |
说明 |
应用 |
.NET |
由System.Text.RegularExpressions 相关类 提供的正则引擎。 |
基于 .Net 的语言和软件。如 C#, Visual Basic.Net, F#, Powershell, Delphi for .NET 等。 |
Java |
由java.util.regex 包提供, 在 Java 4 (JDK 1.4.x) 及更新的版本中可用。在 Java 5 (JDK 1.5.x) 和 6 (JDK 1.6.x) 中添加了一些新功能。 |
基于 JVM 的语言和软件,如 Java, Clojure 等。 |
Perl |
内置于 Perl 的正则表达式引擎,5.6 之前的版本不支持 Unicode。 |
Perl 编程语言。 |
PCRE |
来自开源项目PCRE的正则表达式引擎。 本文介绍的功能在 PCRE 5.x 和 6.x 中可用。 |
REALbasic(Xojo) 语言; Delphi 组件TPerlRegEx 和 Delphi XE 和 C++Builder XE 的单元 RegularExrpessions 和 RegularExpressionsCore ; PHP 的 preg 函数; R 语言(perl = true ); COM 对象 Microsoft VBScript Regular Expressions 5.5。 |
JS(JavaScript) |
由ECMA-262 标准第 3 版定义的脚本语言(ECMAScript)中的正则表达式语法。 |
JavaScript 编程语言;VBScript 中的RegExp ;ClojureScript 编程语言。 |
Python |
由 Python 内置模块 re 支持。 |
Python 编程语言。 |
Ruby |
由 Ruby 内置的正则表达式引擎。 |
Ruby 编程语言。 |
Tcl ARE |
由 Henry Spencer 为 Tcl 8.2/8.4 中命令regexp 开发,被称为高级正则表达式(Advanced Regular Expressions, ARE)。 |
Tcl 编程语言;PostgreSQL 7.4 及更新版本;wxWidgets(wxRE_ADVANCED )。 |
POSIX BRE |
由IEEE POSIX 标准 1003 定义的基本正则表达式(Basic Regular Expressions)。 |
Unix 上的软件工具;R 语言(perl = false, extended = false );Tcl的 基本风味(Extended Regular Expressions),wxWidgets(wxRE_BASIC )。 |
POSIX ERE |
由IEEE POSIX 标准 1003 定义的扩展正则表达式(Extended Regular Expressions)。 |
Unix 上的软件工具,如 awk, grep, egrep, Emacs 等(Emacs 不支持 POSIX 字符类, 排序序列和等值字符); MySQL, Oracle 数据库( Oracle 支持标准外的后向引用,从\1 到 \9 ),PostgreSQL 7.3 及更早版本; PHP 的 ereg 函数,R 语言默认状态,Tcl 的扩展风味(Extended Regular Expressions),wxWidgets(wxRE_EXTENDED )。 |
GNU BRE |
GNU 基本正则表达式(GNU Basic Regular Expressions), 包含 POSIX BRE 及 GNU 扩展。 |
GNU 实现的经典 UNIX 工具,如 GNU/Linux 上的 sed 等。 |
GNU ERE |
GNU 扩展正则表达式(Extended Regular Expressions), 包含 POSIX ERE 及 GNU 扩展。 |
GNU 实现的经典 UNIX 工具,如 GNU/Linux 上的 egrep, grep 等。 |
XML |
由XML Schema 标准的附录 G定义。 |
XML Schema。 |
XPath |
由 XQuery 1.0 和 XPath 2.0 标准中的函数与运算符章节定义。 |
XQuery, XPath。 |
JGsoft |
由Just Great Software 产品使用的正则表达式引擎。 |
PowerGREP, EditPad Pro, AceText, RegexBuddy 等。 |
正则表达式引擎/特性对比
字符
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
\ 转义单个元字符 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
\Q...\E 转义多个元字符 |
YES |
no |
Java 6 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\x00 ~ \xFF (ASCII 字符) |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
\n (换行), \r (回车), \t (制表) |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
YES |
YES |
\f (换页), \v (竖直制表) |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
\a (响铃) |
YES |
YES |
YES |
YES |
YES |
no |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
\e (转义) |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
YES |
no |
no |
no |
no |
no |
no |
\b (退格), \B (反斜杠, \ ) |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
\cA ~ \cZ (控制字符) |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
\ca ~ \cz (控制字符) |
YES |
YES |
no |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
字符类/字符集 [abc]
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
[abc] 字符类 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
[^abc] 反义字符类 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
[a-z] 字符类范围 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
[\d-z] 中的 - 视为字面量 |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
[a-\d] 中的 - 视为字面量 |
YES |
no |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\ 转义单个字符类元字符 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
YES |
YES |
\Q...\E 转义多个字符类元字符 |
YES |
no |
Java 6 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\d 代表数字 |
YES |
YES |
ascii |
YES |
ascii |
ascii |
option |
ascii |
YES |
no |
no |
no |
no |
YES |
YES |
\w 代表单词字符 |
YES |
YES |
ascii |
YES |
ascii |
ascii |
option |
ascii |
YES |
no |
no |
YES |
YES |
YES |
YES |
\s 代表空白字符 |
YES |
YES |
ascii |
YES |
ascii |
YES |
option |
ascii |
YES |
no |
no |
YES |
YES |
ascii |
ascii |
\D , \W and \S 代表反义字符类 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
YES |
YES |
YES |
[\b] 匹配反斜杠(\ ) |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
点
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
. 匹配换行符(\n )外所有字符 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
锚点
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
^ 字符串/行开始 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
$ 字符串/行结束 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
\A 字符串开始 |
YES |
YES |
YES |
YES |
YES |
no |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
\Z 字符串结束,最后一个\n前 |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
YES |
no |
no |
no |
no |
no |
no |
\z 字符串结束 |
YES |
YES |
YES |
YES |
YES |
no |
\Z |
YES |
no |
no |
no |
no |
no |
no |
no |
``` 字符串开始 |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
no |
no |
\' 字符串结束 |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
no |
no |
单词边界
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
\b 单词的开始或结束处 |
YES |
YES |
YES |
YES |
ascii |
ascii |
option |
ascii |
no |
no |
no |
YES |
YES |
no |
no |
\B 不是单词的开始处或结束处 |
YES |
YES |
YES |
YES |
ascii |
ascii |
option |
ascii |
no |
no |
no |
YES |
YES |
no |
no |
\y 单词的开始或结束处 |
YES |
no |
no |
no |
no |
no |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
\Y 不是单词的开始处或结束处 |
YES |
no |
no |
no |
no |
no |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
\m 单词的开始处 |
YES |
no |
no |
no |
no |
no |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
\M 单词的结束处 |
YES |
no |
no |
no |
no |
no |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
\< 单词的开始处 |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
no |
no |
\> 单词的结束处 |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
no |
no |
分支条件
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
` |
` 分支条件 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
` |
` |
YES |
量词
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
? 0 ~ 1 次 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
\? |
YES |
YES |
YES |
* 0 次或更多次 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
+ 1 次或更多次 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
\+ |
YES |
YES |
YES |
{n} n 次 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
\{n\} |
YES |
\{n\} |
YES |
YES |
YES |
{n,m} n ~ m 次 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
\{n,m\} |
YES |
\{n,m\} |
YES |
YES |
YES |
{n,} n 次或更多次 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
\{n,\} |
YES |
\{n,\} |
YES |
YES |
YES |
量词后加? 转为懒惰模式 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
YES |
分组与后向引用
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
(regex) 编号捕获组 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
\( \) |
YES |
\( \) |
YES |
YES |
YES |
(?:regex) 非捕获组 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
\1 ~ \9 后向引用 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
YES |
no |
YES |
\10 ~ \99 后向引用 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
n/a |
no |
no |
n/a |
YES |
前向引用\1 through \9 |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
n/a |
no |
no |
n/a |
no |
嵌套引用\1 ~ \9 |
YES |
YES |
YES |
YES |
YES |
YES |
no |
YES |
no |
no |
n/a |
no |
no |
n/a |
no |
后向引用不存在的组报错 |
YES |
YES |
YES |
YES |
YES |
no |
YES |
no |
YES |
YES |
n/a |
YES |
YES |
n/a |
YES |
后向引用匹配失败的组失败 |
YES |
YES |
YES |
YES |
YES |
no |
YES |
YES |
YES |
YES |
n/a |
YES |
YES |
n/a |
YES |
修饰器
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
(?i) 忽略大小写 |
YES |
YES |
YES |
YES |
YES |
/i only |
YES |
YES |
YES |
no |
no |
no |
no |
no |
flag |
(?s) 点(. )可匹配\n |
YES |
YES |
YES |
YES |
YES |
no |
YES |
(?m) |
no |
no |
no |
no |
no |
no |
flag |
(?m) 行开始/结束可匹配 ^ / $ |
YES |
YES |
YES |
YES |
YES |
/m only |
YES |
always on |
no |
no |
no |
no |
no |
no |
flag |
(?x) 忽略空白模式 |
YES |
YES |
YES |
YES |
YES |
no |
YES |
YES |
YES |
no |
no |
no |
no |
no |
flag |
(?n) 显式匹配 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
(?-ismxn) 关闭模式修饰器 |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
(?ismxn:group) 模式修饰器仅应用于本组 |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
原子组与占位量词(possessive quantifiers)
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
(?>regex) 原子组 |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
?+ , *+ , ++ , {m,n}+ 占位量词 |
YES |
no |
YES |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
断言
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
(?=regex) 正预测先行断言 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
(?!regex) 负预测先行断言 |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
(?<=text) 正回顾后发断言 |
full regex |
full regex |
finite length |
fixed length |
fixed + alternation |
no |
fixed length |
no |
no |
no |
no |
no |
no |
no |
no |
(?<!text) 负回顾后发断言 |
full regex |
full regex |
finite length |
fixed length |
fixed + alternation |
no |
fixed length |
no |
no |
no |
no |
no |
no |
no |
no |
从上个匹配继续
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
\G 匹配尝试的开始 |
YES |
YES |
YES |
YES |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
条件
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
`(?(?=regex)then |
else)` 使用任意断言 |
YES |
YES |
no |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
`(?(regex)then |
else)` |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
`(?(1)then |
else)` |
YES |
YES |
no |
YES |
YES |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
`(?(group)then |
else)` |
YES |
YES |
no |
no |
YES |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
注释
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
(?#comment) |
YES |
YES |
no |
YES |
YES |
no |
YES |
YES |
YES |
no |
no |
no |
no |
no |
no |
忽略空白
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
支持忽略空白语法 |
YES |
YES |
YES |
YES |
YES |
no |
YES |
YES |
YES |
no |
no |
no |
no |
no |
YES |
字符类作为整体 |
YES |
YES |
no |
YES |
YES |
n/a |
YES |
YES |
YES |
n/a |
n/a |
n/a |
n/a |
n/a |
YES |
# 开启注释 |
YES |
YES |
YES |
YES |
YES |
n/a |
YES |
YES |
YES |
n/a |
n/a |
n/a |
n/a |
n/a |
no |
Unicode 字符
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
\X Unicode 字素 |
YES |
no |
no |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\u0000 ~ \uFFFF (Unicode 字符) |
YES |
YES |
YES |
no |
no |
YES |
u"string" |
no |
YES |
no |
no |
no |
no |
no |
no |
\x{0} ~ \x{FFFF} (Unicode 字符) |
YES |
no |
no |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
Unicode 属性, 脚本与区块
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
\pL ~ \pC (Unicode 属性) |
YES |
no |
YES |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{L} ~ \p{C} (Unicode 属性) |
YES |
YES |
YES |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
\p{Lu} ~ \p{Cn} (Unicode 属性) |
YES |
YES |
YES |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
\p{L&} , \p{Letter&} 等同于 [\p{Lu}\p{Ll}\p{Lt}] Unicode 属性 |
YES |
no |
no |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsL} ~ \p{IsC} (Unicode 属性) |
YES |
no |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsLu} ~ \p{IsCn} (Unicode 属性) |
YES |
no |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{Letter} ~ \p{Other} (Unicode 属性) |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{Lowercase_Letter} ~ \p{Not_Assigned} (Unicode 属性) |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsLetter} ~ \p{IsOther} (Unicode 属性) |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsLowercase_Letter} ~ \p{IsNot_Assigned} (Unicode 属性) |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{Arabic} ~ \p{Yi} (Unicode 脚本) |
YES |
no |
no |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsArabic} ~ \p{IsYi} (Unicode 脚本) |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{BasicLatin} ~ \p{Specials} (Unicode 区块) |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{InBasicLatin} ~ \p{InSpecials} (Unicode 区块) |
YES |
no |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsBasicLatin} ~ \p{IsSpecials} (Unicode 区块) |
YES |
YES |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
上方{} 中的内容忽略大小写 |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
上方语法中长名称允许空格,边字符,下划线 (如BasicLatin 可写为 Basic-Latin 或 Basic_Latin 或 Basic Latin ) |
YES |
no |
Java 5 |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\P 上方所有 \p 的反义 |
YES |
YES |
YES |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
\p{^...} 上方所有 \p{...} 的反义 |
YES |
no |
no |
YES |
option |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
命名捕获与后向引用
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
(?<name>regex) .Net 风格的命名捕获分组 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
(?'name'regex) .Net 风格的命名捕获分组 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\k<name> .Net 风格的命名后向引用 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\k'name' .Net 风格的命名后向引用 |
YES |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
(?P<name>regex) Python 风格的命名捕获分组 |
YES |
no |
no |
no |
YES |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
(?P=name) Python 风格的命名后向引用 |
YES |
no |
no |
no |
YES |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
多个捕获组同名 |
YES |
YES |
n/a |
n/a |
no |
n/a |
no |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
XML 字符类
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
\i , \I , \c , \C XML 名称字符类 |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
[abc-[abc]] 字符类差集 |
YES |
2.0 |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
POSIX 方括号表达式
特性 |
JGsoft |
.NET |
Java |
Perl |
PCRE |
JS |
Python |
Ruby |
Tcl ARE |
POSIX BRE |
POSIX ERE |
GNU BRE |
GNU ERE |
XML |
XPath |
[:alpha:] POSIX 字符类 |
YES |
no |
no |
YES |
ascii |
no |
no |
YES |
YES |
YES |
YES |
YES |
YES |
no |
no |
\p{Alpha} POSIX 字符类 |
YES |
no |
ascii |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
\p{IsAlpha} POSIX 字符类 |
YES |
no |
no |
YES |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
[.span-ll.] POSIX 排序序列 |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
YES |
YES |
YES |
no |
no |
[=x=] POSIX 等值字符 |
no |
no |
no |
no |
no |
no |
no |
no |
YES |
YES |
YES |
YES |
YES |
no |
no |