正則表達(dá)式引擎/風(fēng)味對(duì)比
更新時(shí)間:2019-11-27 允許轉(zhuǎn)載 轉(zhuǎn)載請(qǐng)注明來(lái)源
說(shuō)明:本文內(nèi)容翻譯后整理自regular-expressions.mobi。原網(wǎng)址只有使用手機(jī)瀏覽器才能正常訪問(wèn)。
正則表達(dá)式引擎/風(fēng)味說(shuō)明
風(fēng)味是規(guī)范,引擎是實(shí)現(xiàn)。
| 名稱 | 說(shuō)明 | 應(yīng)用 |
|---|---|---|
| .NET | 由 System.Text.RegularExpressions
相關(guān)類 提供的正則引擎。 |
基于 .Net 的語(yǔ)言和軟件。如 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 的語(yǔ)言和軟件,如 Java, Clojure 等。 |
| Perl | 內(nèi)置于 Perl 的正則表達(dá)式引擎,5.6 之前的版本不支持 Unicode。 | Perl 編程語(yǔ)言。 |
| PCRE | 來(lái)自開(kāi)源項(xiàng)目 PCRE的正則表達(dá)式引擎。 本文介紹的功能在 PCRE 5.x 和 6.x 中可用。 | REALbasic(Xojo) 語(yǔ)言;
Delphi 組件 TPerlRegEx 和 Delphi XE 和 C++Builder XE 的單元
RegularExrpessions
和 RegularExpressionsCore;
PHP 的 preg 函數(shù);
R 語(yǔ)言(perl = true);
COM 對(duì)象 Microsoft VBScript Regular Expressions 5.5。
|
| JS(JavaScript) | 由 ECMA-262 標(biāo)準(zhǔn)第 3 版定義的腳本語(yǔ)言(ECMAScript)中的正則表達(dá)式語(yǔ)法。 | JavaScript 編程語(yǔ)言;VBScript 中的 RegExp;ClojureScript 編程語(yǔ)言。 |
| Python | 由 Python 內(nèi)置模塊 re 支持。 |
Python 編程語(yǔ)言。 |
| Ruby | 由 Ruby 內(nèi)置的正則表達(dá)式引擎。 | Ruby 編程語(yǔ)言。 |
| Tcl ARE | 由 Henry Spencer 為 Tcl 8.2/8.4 中命令 regexp 開(kāi)發(fā),被稱為高級(jí)正則表達(dá)式(Advanced Regular
Expressions,
ARE)。 |
Tcl 編程語(yǔ)言;PostgreSQL 7.4 及更新版本;wxWidgets(wxRE_ADVANCED)。 |
| POSIX BRE | 由 IEEE POSIX 標(biāo)準(zhǔn) 1003 定義的基本正則表達(dá)式(Basic Regular Expressions)。 | Unix 上的軟件工具;R 語(yǔ)言(perl = false, extended = false);Tcl的 基本風(fēng)味(Extended Regular
Expressions),wxWidgets(wxRE_BASIC)。 |
| POSIX ERE | 由 IEEE POSIX 標(biāo)準(zhǔn) 1003 定義的擴(kuò)展正則表達(dá)式(Extended Regular Expressions)。 | Unix 上的軟件工具,如 awk, grep, egrep, emacs 等(Emacs 不支持 POSIX 字符類, 排序序列和等值字符);
MySQL, Oracle 數(shù)據(jù)庫(kù)( Oracle 支持標(biāo)準(zhǔn)外的后向引用,從 \1 到 \9),PostgreSQL 7.3 及更早版本;
PHP 的 ereg 函數(shù),R 語(yǔ)言默認(rèn)狀態(tài),Tcl 的擴(kuò)展風(fēng)味(Extended Regular
Expressions),wxWidgets(wxRE_EXTENDED)。 |
| GNU BRE | GNU 基本正則表達(dá)式(GNU Basic Regular Expressions), 包含 POSIX BRE 及 GNU 擴(kuò)展。 | GNU 實(shí)現(xiàn)的經(jīng)典 UNIX 工具,如 GNU/Linux 上的 sed 等。 |
| GNU ERE | GNU 擴(kuò)展正則表達(dá)式(Extended Regular Expressions), 包含 POSIX ERE 及 GNU 擴(kuò)展。 | GNU 實(shí)現(xiàn)的經(jīng)典 UNIX 工具,如 GNU/Linux 上的 egrep, grep 等。 |
| XML | 由 XML Schema 標(biāo)準(zhǔn)的附錄 G定義。 | XML Schema。 |
| XPath | 由 XQuery 1.0 和 XPath 2.0 標(biāo)準(zhǔn)中的函數(shù)與運(yùn)算符章節(jié)定義。 | XQuery, XPath。 |
| JGsoft | 由 Just Great Software 產(chǎn)品使用的正則表達(dá)式引擎。 | PowerGREP, EditPad Pro, AceText, RegexBuddy 等。 |
正則表達(dá)式引擎/風(fēng)味特性對(duì)比表
| 字符 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 特性 | JGsoft | .NET | Java | Perl | PCRE | JS | Python | Ruby | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | XML | XPath |
\ 轉(zhuǎn)義單個(gè)元字符 |
YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES |
\Q...\E 轉(zhuǎn)義多個(gè)元字符 |
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 (換頁(yè)), \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 (轉(zhuǎn)義) |
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 |
\ 轉(zhuǎn)義單個(gè)字符類元字符 |
YES | YES | YES | YES | YES | YES | YES | YES | YES | no | no | no | no | YES | YES |
\Q...\E 轉(zhuǎn)義多個(gè)字符類元字符 |
YES | no | Java 6 | YES | YES | no | no | no | no | no | no | no | no | no | no |
\d 代表數(shù)字 |
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 |
| 點(diǎn) | |||||||||||||||
| 特性 | 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 |
| 錨點(diǎn) | |||||||||||||||
| 特性 | JGsoft | .NET | Java | Perl | PCRE | JS | Python | Ruby | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | XML | XPath |
^ 字符串/行開(kāi)始 |
YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | no | YES |
$ 字符串/行結(jié)束 |
YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | no | YES |
\A 字符串開(kāi)始 |
YES | YES | YES | YES | YES | no | YES | YES | YES | no | no | no | no | no | no |
\Z 字符串結(jié)束,最后一個(gè)\n前 |
YES | YES | YES | YES | YES | no | no | YES | YES | no | no | no | no | no | no |
\z 字符串結(jié)束 |
YES | YES | YES | YES | YES | no | \Z |
YES | no | no | no | no | no | no | no |
\` 字符串開(kāi)始 |
no | no | no | no | no | no | no | no | no | no | no | YES | YES | no | no |
\' 字符串結(jié)束 |
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 單詞的開(kāi)始或結(jié)束處 |
YES | YES | YES | YES | ascii | ascii | option | ascii | no | no | no | YES | YES | no | no |
\B 不是單詞的開(kāi)始處或結(jié)束處 |
YES | YES | YES | YES | ascii | ascii | option | ascii | no | no | no | YES | YES | no | no |
\y 單詞的開(kāi)始或結(jié)束處 |
YES | no | no | no | no | no | no | no | YES | no | no | no | no | no | no |
\Y 不是單詞的開(kāi)始處或結(jié)束處 |
YES | no | no | no | no | no | no | no | YES | no | no | no | no | no | no |
\m 單詞的開(kāi)始處 |
YES | no | no | no | no | no | no | no | YES | no | no | no | no | no | no |
\M 單詞的結(jié)束處 |
YES | no | no | no | no | no | no | no | YES | no | no | no | no | no | no |
\< 單詞的開(kāi)始處 |
no | no | no | no | no | no | no | no | no | no | no | YES | YES | no | no |
\> 單詞的結(jié)束處 |
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 | 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 |
量詞后加 ? 轉(zhuǎn)為懶惰模式 |
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) 編號(hào)捕獲組 |
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 |
| 后向引用不存在的組報(bào)錯(cuò) | 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) 忽略大小寫(xiě) |
YES | YES | YES | YES | YES | /i only | YES | YES | YES | no | no | no | no | no | flag |
(?s) 點(diǎn)(.)可匹配\n |
YES | YES | YES | YES | YES | no | YES | (?m) | no | no | no | no | no | no | flag |
(?m) 行開(kāi)始/結(jié)束可匹配 ^ / $ |
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) 關(guān)閉模式修飾器 |
YES | YES | YES | YES | YES | no | no | YES | no | no | no | no | no | no | no |
(?ismxn:group) 模式修飾器僅應(yīng)用于本組 |
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) 正預(yù)測(cè)先行斷言 |
YES | YES | YES | YES | YES | YES | YES | YES | YES | no | no | no | no | no | no |
(?!regex) 負(fù)預(yù)測(cè)先行斷言 |
YES | YES | YES | YES | YES | YES | YES | YES | YES | no | no | no | no | no | no |
(?<=text) 正回顧后發(fā)斷言 |
full regex | full regex | finite length | fixed length | fixed + alternation | no | fixed length | no | no | no | no | no | no | no | no |
(?<!text) 負(fù)回顧后發(fā)斷言 |
full regex | full regex | finite length | fixed length | fixed + alternation | no | fixed length | no | no | no | no | no | no | no | no |
| 從上個(gè)匹配繼續(xù) | |||||||||||||||
| 特性 | JGsoft | .NET | Java | Perl | PCRE | JS | Python | Ruby | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | XML | XPath |
\G 匹配嘗試的開(kāi)始 |
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 | no |
(?(regex)then|else) |
no | YES | no | 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 | no |
(?(group)then|else) |
YES | YES | no | no | YES | no | YES | 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 |
(?#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 |
| 支持忽略空白語(yǔ)法 | 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 |
| # 開(kāi)啟注釋 | 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 屬性, 腳本與區(qū)塊 | |||||||||||||||
| 特性 | 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 區(qū)塊) |
YES | no | no | YES | no | no | no | no | no | no | no | no | no | no | no |
\p{InBasicLatin} ~ \p{InSpecials} (Unicode 區(qū)塊) |
YES | no | YES | YES | no | no | no | no | no | no | no | no | no | no | no |
\p{IsBasicLatin} ~ \p{IsSpecials} (Unicode 區(qū)塊) |
YES | YES | no | YES | no | no | no | no | no | no | no | no | no | YES | YES |
上方 {} 中的內(nèi)容忽略大小寫(xiě) |
YES | no | no | YES | no | no | no | no | no | no | no | no | no | no | no |
上方語(yǔ)法中長(zhǎng)名稱允許空格,邊字符,下劃線 (如 BasicLatin 可寫(xiě)為 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 風(fēng)格的命名捕獲分組 |
YES | YES | no | no | no | no | no | no | no | no | no | no | no | no | no |
(?'name'regex) .Net 風(fēng)格的命名捕獲分組 |
YES | YES | no | no | no | no | no | no | no | no | no | no | no | no | no |
\k<name> .Net 風(fēng)格的命名后向引用 |
YES | YES | no | no | no | no | no | no | no | no | no | no | no | no | no |
\k'name' .Net 風(fēng)格的命名后向引用 |
YES | YES | no | no | no | no | no | no | no | no | no | no | no | no | no |
(?P<name>regex) Python 風(fēng)格的命名捕獲分組 |
YES | no | no | no | YES | no | YES | no | no | no | no | no | no | no | no |
(?P=name) Python 風(fēng)格的命名后向引用 |
YES | no | no | no | YES | no | YES | no | no | no | no | no | no | no | no |
| 多個(gè)捕獲組同名 | 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 方括號(hào)表達(dá)式 | |||||||||||||||
| 特性 | 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 |