欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

正則表達式引擎/風味對比

更新時間:2019-11-27 允許轉(zhuǎn)載 轉(zhuǎn)載請注明來源

說明:本文內(nèi)容翻譯后整理自regular-expressions.mobi。原網(wǎng)址只有使用手機瀏覽器才能正常訪問。

正則表達式引擎/風味說明

風味是規(guī)范,引擎是實現(xiàn)。

名稱 說明 應用
.NET System.Text.RegularExpressions 相關(guān)類 提供的正則引擎。 基于 .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 內(nèi)置于 Perl 的正則表達式引擎,5.6 之前的版本不支持 Unicode。 Perl 編程語言。
PCRE 來自開源項目 PCRE正則表達式引擎。 本文介紹的功能在 PCRE 5.x 和 6.x 中可用。 REALbasic(Xojo) 語言; Delphi 組件 TPerlRegEx 和 Delphi XE 和 C++Builder XE 的單元 RegularExrpessionsRegularExpressionsCore; PHP 的 preg 函數(shù); R 語言(perl = true); COM 對象 Microsoft VBScript Regular Expressions 5.5。
JS(JavaScript) ECMA-262 標準第 3 版定義的腳本語言(ECMAScript)中的正則表達式語法。 JavaScript 編程語言;VBScript 中的 RegExp;ClojureScript 編程語言。
Python 由 Python 內(nèi)置模塊 re 支持。 Python 編程語言。
Ruby 由 Ruby 內(nèi)置的正則表達式引擎。 Ruby 編程語言。
Tcl ARE 由 Henry Spencer 為 Tcl 8.2/8.4 中命令 regexp 開發(fā),被稱為高級正則表達式(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 數(shù)據(jù)庫( Oracle 支持標準外的后向引用,從 \1\9),PostgreSQL 7.3 及更早版本; PHP 的 ereg 函數(shù),R 語言默認狀態(tài),Tcl 的擴展風味(Extended Regular Expressions),wxWidgets(wxRE_EXTENDED)。
GNU BRE GNU 基本正則表達式(GNU Basic Regular Expressions), 包含 POSIX BRE 及 GNU 擴展。 GNU 實現(xiàn)的經(jīng)典 UNIX 工具,如 GNU/Linux 上的 sed 等。
GNU ERE GNU 擴展正則表達式(Extended Regular Expressions), 包含 POSIX ERE 及 GNU 擴展。 GNU 實現(xiàn)的經(jīng)典 UNIX 工具,如 GNU/Linux 上的 egrep, grep 等。
XML XML Schema 標準的附錄 G定義。 XML Schema。
XPath 由 XQuery 1.0 和 XPath 2.0 標準中的函數(shù)與運算符章節(jié)定義。 XQuery, XPath。
JGsoft Just Great Software 產(chǎn)品使用的正則表達式引擎。 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
\ 轉(zhuǎn)義單個元字符 YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES
\Q...\E 轉(zhuǎn)義多個元字符 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 (轉(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)義單個字符類元字符 YES YES YES YES YES YES YES YES YES no no no no YES YES
\Q...\E 轉(zhuǎn)義多個字符類元字符 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
特性 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
$ 字符串/行結(jié)束 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 字符串結(jié)束,最后一個\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
\` 字符串開始 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 單詞的開始或結(jié)束處 YES YES YES YES ascii ascii option ascii no no no YES YES no no
\B 不是單詞的開始處或結(jié)束處 YES YES YES YES ascii ascii option ascii no no no YES YES no no
\y 單詞的開始或結(jié)束處 YES no no no no no no no YES no no no no no no
\Y 不是單詞的開始處或結(jié)束處 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 單詞的結(jié)束處 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
\> 單詞的結(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) 編號捕獲組 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) 行開始/結(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) 模式修飾器僅應用于本組 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) 正回顧后發(fā)斷言 full regex full regex finite length fixed length fixed + alternation no fixed length no no 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
從上個匹配繼續(xù)
特性 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 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
支持忽略空白語法 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 屬性, 腳本與區(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)容忽略大小寫 YES no no YES no no no no no no no no no no no
上方語法中長名稱允許空格,邊字符,下劃線 (如 BasicLatin 可寫為 Basic-LatinBasic_LatinBasic 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