快速入門
教學
工具和語言
範例
參考
書籍評論
正規表示式參考
簡介
目錄
快速參考
字元
基本功能
字元類別
簡寫
錨點
字詞邊界
量詞
Unicode
擷取群組和反向參照
命名群組和反向參照
特殊群組
模式修改器
遞迴和平衡群組
替換參考
字元
配對文字和反向參照
內容和大小寫轉換
條件式
更多網站資訊
簡介
正規表示式快速入門
正規表示式教學
替換字串教學
應用程式和語言
正規表示式範例
正規表示式參考
替換字串參考
書籍評論
可列印 PDF
關於本網站
RSS 摘要和部落格
RegexBuddy—Better than a regular expression reference!

正規表示式參考

本網站上的正規表示式參考既是所有可用正規表示式語法的參考,也是在 教學 中討論的正規表示式風格所支援功能的比較。 參考表格 包含了大量的資訊。若要充分利用它們,請遵循此說明以了解如何閱讀它們。

表格針對每個正規表示式功能有六個欄位。前四個欄位說明該功能。

功能功能名稱,同時也是教學中相關章節的連結。
語法此功能的實際正規表示式語法。如果語法是固定的,則會直接顯示。如果語法有變數元素,則會說明語法。
說明功能用途的摘要。
範例展示該功能的正規表示式。

最後兩欄表示您選擇的兩種正規表示式風格是否支援此特定功能。您可以使用表格上方的下拉式清單變更風格。有許多可能的指標。

此風格的所有版本都支援此功能。
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 中適用於主動編碼頁中的字元。早期版本完全不支援。
字串正規表示式風格不支援此語法。但是,此正規表示式風格通常用於程式語言中的字串常數支援此語法。
3.0
1.0 字串
此正規表示式風格的版本 3.0 和後續版本支援此語法。正規表示式風格的早期版本不支援此語法。但是,此正規表示式風格通常用於程式語言中的字串常數自版本 1.0 起就支援此語法。
選項如果您設定特定選項或在前面加上特定 模式修改器,此正規表示式風格的所有版本都支援此功能。
選項
3.0
如果您設定特定選項或在前面加上特定 模式修改器,此正規表示式風格的版本 3.0 和所有後續版本都支援此功能。早期版本不支援語法或不支援模式修改器,無法將語法的行為變更為功能所描述的內容。
3.0
2.0 失敗
此正規表示式風格的版本 3.0 和所有後續版本都支援此功能。版本 2.0 所有 3.0 之前的後續版本都辨識語法,但永遠無法比對此正規表示式記號。2.0 之前的版本不支援語法。
此風味的任何版本都不支援此功能。未說明此語法實際上執行什麼動作。相同語法可能用於參考表格中其他地方指出的不同功能。或者,此語法可能會觸發錯誤,或可能被解譯為純文字。
不適用此功能不適用於此正規表示式風味。描述參考表格中先前介紹的特定語法行為的功能會顯示不適用於完全不支援該語法的風味。
失敗此風味辨識語法,且使用它的正規表示式運作,但此特定正規表示式代碼始終無法配對。只有當此代碼透過交替或量詞變成選用時,正規表示式才能找到配對。
2.0–2.9 失敗2.0 至 2.9 版辨識語法,但始終無法配對此正規表示式代碼。較早和較新的版本不辨識語法或將其視為語法錯誤。
忽略此風味辨識語法,但它沒有執行任何有用的動作。此特定正規表示式代碼始終會找到長度為零的配對。
錯誤此風味辨識語法,但將其視為語法錯誤。

當此圖例顯示「所有版本」或「沒有版本」時,表示參考表格涵蓋的每個風味的所有或沒有版本

JGsoftV1:EditPad 6 和 7;PowerGREP 3 和 4;AceText 3
V2:EditPad 8;PowerGREP 5;AceText 4
.NET1.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 的所有版本
Java4–21
Perl5.8–5.32
PCRE4.0–8.45
PCRE210.00–10.39
PHP5.0.0–8.1.24
DelphiXE–XE8 和 10–10.4 和 11;僅 TRegEx;也適用於 C++Builder XE–XE8 和 10–10.4 和 11
R2.14.0–4.2.1
JavaScriptChrome、Edge 和 Firefox 的最新版本
VBScript怪異模式中的 VBscript 和 Internet Explorer
XRegExp2.0.0–5.1.0
Python2.4–3.12
Ruby1.8–3.2
std::regexVisual C++ 2008–2022 (Dinkumware std 函式庫)
boost::regex1.38–1.39 & 1.42–1.83
Tcl ARE8.4–8.6
POSIX BREIEEE Std 1003.1
POSIX EREIEEE Std 1003.1
GNU BRE
GNU ERE
Oracle10gR1、10gR2、11gR1、11gR2、12c
XML1.0–1.1
XPath2.0–3.1

對於 .NET 版本,某些功能會標示為「ECMA」或「非 ECMA」。這表示該功能僅在設定 RegexOptions.ECMAScript 或未設定時才受支援。當設定 RegexOptions.ECMAScript 時,標示為「非 ECMA Unicode」的功能會比對 ASCII 字元,而未設定 RegexOptions.ECMAScript 時則會比對 Unicode 字元。適用於 .NET 2.0 或更新版本的任何功能也適用於任何版本的 .NET Core。Visual Studio IDE 從 VS 2012 開始使用非 ECMA .NET 版本。

對於 std::regexboost::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 時才支援該功能。