正则表达式参考:模式修改器正则表达式参考:模式修改器正则表达式参考:模式修改器正则表达式参考:模式修改器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2024年3月5日
类别
  • 正则表达式
标签
正则表达式参考:模式修改器
  • 简
  • 繁
  • En
关于正则表达式 » 正则表达式参考 » 正则表达式参考:模式修改器

正则表达式参考
简介
目录
快速参考
字符
基本功能
字符类别
简写
锚点
字词边界
量词
Unicode
捕获组与反向引用
命名组与反向引用
特殊组
模式修改器
递归与平衡组
替换参考
字符
配对文本与反向引用
内容与大小写转换
条件式
此网站的其他信息
简介
正则表达式快速入门
正则表达式教程
取代字符串教学
应用程序与语言
正则表达式范例
正则表达式参考
替换字符串参考

正则表达式参考:模式修改器

模式修改器语法包含两个在正则表达式风格中不同的元素。括号和问号用于将修改器添加至正则表达式。根据其在正则表达式中的位置和正则表达式风格,它可能会影响整个正则表达式或其一部分。如果某种风格支持至少一种修改器语法,则它也会支持一个或多个字母,这些字母可用于修改器内部以切换特定模式。如果它不支持,则会针对该风格的所有字母标示「不适用」。

如果某种风格支持模式修改器,但并不支持特定字母,则会标示为「否」。这并不表示该风格完全没有此模式。该风格可能仍有此模式,但没有选项可以将其关闭。模式也不一定缺省为关闭。例如,在大部分正则表达式风格中,^ 和 $ 缺省只会在字符串的开头和结尾配对。但在 Ruby 中,它们缺省会在每行的开头和结尾配对。在 Ruby 中您无法关闭此模式。(?-m) 在 Ruby 中会影响点,而不是锚点。

下表只表示每种风格是否支持特定字母以切换特定模式。它并未表示默认值。

功能语法说明范例.NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
模式修改器 (?letters) 在正则表达式的开头 正则表达式开头的模式修改器会影响整个正则表达式,并覆写正则表达式外部设置的任何选项。 (?i)a 会比对 a 和 A。 是是是是是是是是否否是是是否ECMA是否否否否否否否
模式修改器 (?letters) 在正则表达式的中间 正则表达式中间的模式修改器会影响整个正则表达式,并覆写正则表达式外部设置的任何选项。 te(?i)st 会比对 test、teST、TEst 和 TEST。 否否否否否否否否否否否是否否否否否否否否否否否
模式修改器 (?letters) 在正则表达式的中间 正则表达式中间的模式修改器只会影响修改器右边的正则表达式部分。如果修改器用在群组内,它只会影响群组内修改器右边的正则表达式部分。如果正则表达式或群组使用交替,修改器右边的所有交替选项都会受到影响。 te(?i)st 会比对 test 和 teST,但不会比对 TEst 或 TEST。 是是是是是是是是否否否否是否ECMA否否否否否否否否
修改器群组 (?letters:regex) 非捕获组,其修改器只会影响群组内的正则表达式部分。 te(?i:st) 会比对 test 和 teST,但不会比对 TEst 或 TEST。 是是是是是是是是否否否3.6是否ECMA否否否否否否否否
否定修改器 (?on-off) 和 (?on-off:regex) 连字号前的修改器字母(如果有)会打开,而连字号后的修改器字母会关闭。 (?i)te(?-i)st 会比对 test 和 TEst,但不会比对 teST 或 TEST。 是是是是是是是是不适用不适用否3.6是不适用ECMA否不适用不适用不适用不适用不适用不适用不适用
重设修改器 (?^) 关闭所有选项。插入符号后面可以加上修饰符号,以重新打开某些选项。 (?i)te(?^)st 会比对 test 和 TEst,但不会比对 teST 或 TEST。 否否5.14否10.327.3.0否4.0.0不适用不适用否否否不适用否否不适用不适用不适用不适用不适用不适用不适用
不区分大小写 (?i) 打开不区分大小写。 (?i)a 会比对 a 和 A。 是是是是是是是是不适用不适用是是是不适用ECMA是不适用不适用不适用不适用不适用不适用不适用
区分大小写 (?c) 打开区分大小写。 (?c)a 会比对 a,但不会比对 A。 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
自由间距 (?x) 打开自由间距模式,以忽略正则表达式代码之间的空白,并允许 # 注解。 (?x)a#b 会比对 a 是是是是是是是是不适用不适用是是是不适用ECMA是不适用不适用不适用不适用不适用不适用不适用
自由间距 (?xx) 打开自由间距模式,以忽略正则表达式代码之间的空白,并允许 # 注解,包括字符类别内外。 (?xx)[ a] 会比对 a,但不会比对   否否5.26否10.307.3.0否4.0.0不适用不适用否否否不适用否否不适用不适用不适用不适用不适用不适用不适用
精确间距 (?t) 打开「紧密」或精确间距模式,将空白和 # 字符视为字面值。 (?t)a#b 会比对 a#b 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
单行 (?s) 让点符号比对所有字符,包括换行字符。 (?s).* 会在 ab\n\ndef 中比对 ab\n\ndef 是是是是是是是是不适用不适用是是否不适用ECMA否不适用不适用不适用不适用不适用不适用不适用
多行 (?m) 让 ^ 和 $ 分别比对每一行的开头和结尾。 (?m)^. 会在 ab\n\ndef 中比对 a 和 d 是是是是是是是是不适用不适用是是否不适用ECMA否不适用不适用不适用不适用不适用不适用不适用
单行 (?m) 让点符号比对所有字符,包括换行字符。 (?m).* 会在 ab\n\ndef 中比对 ab\n\ndef 否否否否否否否否不适用不适用否否是不适用否否不适用不适用不适用不适用不适用不适用不适用
Tcl 单行 (?s) 让 ^ 和 $ 仅在字符串的开头和结尾做比对。让点号比对所有字符,包含换行字符。 (?s)^.{3} 仅比对 ab\n 在 ab\n\ndef 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
Tcl 多行 (?m) 让 ^ 和 $ 在每一行的开头和结尾做比对。不允许点号和否定字符类别比对换行字符。 (?m)^. 会在 ab\n\ndef 中比对 a 和 d 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
Tcl 多行 (?n) 让 ^ 和 $ 在每一行的开头和结尾做比对。不允许点号和否定字符类别比对换行字符。 (?n)^. 比对 a 和 d 在 ab\n\ndef 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
Tcl「部分」换行敏感 (?p) 让 ^ 和 $ 仅在字符串的开头和结尾做比对。不允许点号和否定字符类别比对换行字符。 (?p)^.* 仅比对 ab 在 ab\n\ndef 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
Tcl「奇怪」换行敏感 (?w) 让 ^ 和 $ 在每一行的开头和结尾做比对。让点号比对所有字符,包含换行字符。 (?w)^. 比对 a、第一个 \n 和 d 在 ab\n\ndef 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
明确截取 (?n) 一般括号是非捕获组,而非编号捕获组。只有命名捕获组实际会截取。 (?n)(a|b)c 与 (?:a|b)c 相同 是否5.22否10.307.3.0否4.0.0不适用不适用是否否不适用否否不适用不适用不适用不适用不适用不适用不适用
重复命名组 (?J) 允许多个命名捕获组共用相同名称。 (?J)(?:(?'x'a)|(?'x'b))\k'x' 符合 aa 或 bb 否否否6.7是5.2.0是是不适用不适用否否否不适用否否不适用不适用不适用不适用不适用不适用不适用
非贪婪量词 (?U) 切换 贪婪量词和非贪婪量词 的语法。强烈建议不要使用,因为它会混淆标准量词语法的意义。 (?U)a* 是非贪婪的,而 (?U)a*? 是贪婪的 否否否是是是是是不适用不适用否否否不适用否否不适用不适用不适用不适用不适用不适用不适用
UNIX 行 (?d) 当锚点符合换行符号,且点号不符合换行符号时,让它们只辨识换行符号作为换行符号 (?dm)^. 在 a\rb\nc 中符合 a 和 c 否是否否否否否否不适用不适用否否否不适用否否不适用不适用不适用不适用不适用不适用不适用
BRE (?b) 将正则表达式解释为 POSIX BRE (?b)a\+ 符合 aaa 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
ERE (?e) 将正则表达式解释为 POSIX ERE (?e)[a\]+ 符合 a\a\a 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
文本 (?q) 将正则表达式解释为文本字符串(不包含修饰符) (?q)[a\]+ 以文本方式符合 [a\]+ 否否否否否否否否不适用不适用否否否不适用否是不适用不适用不适用不适用不适用不适用不适用
额外语法 (?X) 将以反斜线转义且未形成正则表达式记号的字母视为错误,而不是文本。 (?X)\q 是错误,而 (?-X)\q 符合 q 否否否是否5.0.0–7.2.34是2.14.0–3.6.3不适用不适用否否否不适用否否不适用不适用不适用不适用不适用不适用不适用
功能语法说明范例.NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
正規表示式參考:模式修改器
  • 简
  • 繁
  • En
關於正規表示式 » 正規表示式參考 » 正規表示式參考:模式修改器

正規表示式參考
簡介
目錄
快速參考
字元
基本功能
字元類別
簡寫
錨點
字詞邊界
量詞
Unicode
擷取群組與反向參照
命名群組與反向參照
特殊群組
模式修改器
遞迴與平衡群組
取代參考
字元
配對文字與反向參照
內容與大小寫轉換
條件式
此網站的其他資訊
簡介
正規表示式快速入門
正規表示式教學
取代字串教學
應用程式與語言
正規表示式範例
正規表示式參考
取代字串參考

正規表示式參考:模式修改器

模式修改器語法包含兩個在正規表示式風格中不同的元素。括號和問號用於將修改器新增至正規表示式。根據其在正規表示式中的位置和正規表示式風格,它可能會影響整個正規表示式或其一部分。如果某種風格支援至少一種修改器語法,則它也會支援一個或多個字母,這些字母可用於修改器內部以切換特定模式。如果它不支援,則會針對該風格的所有字母標示「不適用」。

如果某種風格支援模式修改器,但並不支援特定字母,則會標示為「否」。這並不表示該風格完全沒有此模式。該風格可能仍有此模式,但沒有選項可以將其關閉。模式也不一定預設為關閉。例如,在大部分正規表示式風格中,^ 和 $ 預設只會在字串的開頭和結尾配對。但在 Ruby 中,它們預設會在每行的開頭和結尾配對。在 Ruby 中您無法關閉此模式。(?-m) 在 Ruby 中會影響點,而不是錨點。

下表只表示每種風格是否支援特定字母以切換特定模式。它並未表示預設值。

功能語法說明範例.NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
模式修改器 (?letters) 在正規表示式的開頭 正規表示式開頭的模式修改器會影響整個正規表示式,並覆寫正規表示式外部設定的任何選項。 (?i)a 會比對 a 和 A。 是是是是是是是是否否是是是否ECMA是否否否否否否否
模式修改器 (?letters) 在正規表示式的中間 正規表示式中間的模式修改器會影響整個正規表示式,並覆寫正規表示式外部設定的任何選項。 te(?i)st 會比對 test、teST、TEst 和 TEST。 否否否否否否否否否否否是否否否否否否否否否否否
模式修改器 (?letters) 在正規表示式的中間 正規表示式中間的模式修改器只會影響修改器右邊的正規表示式部分。如果修改器用在群組內,它只會影響群組內修改器右邊的正規表示式部分。如果正規表示式或群組使用交替,修改器右邊的所有交替選項都會受到影響。 te(?i)st 會比對 test 和 teST,但不會比對 TEst 或 TEST。 是是是是是是是是否否否否是否ECMA否否否否否否否否
修改器群組 (?letters:regex) 非擷取群組,其修改器只會影響群組內的正規表示式部分。 te(?i:st) 會比對 test 和 teST,但不會比對 TEst 或 TEST。 是是是是是是是是否否否3.6是否ECMA否否否否否否否否
否定修改器 (?on-off) 和 (?on-off:regex) 連字號前的修改器字母(如果有)會開啟,而連字號後的修改器字母會關閉。 (?i)te(?-i)st 會比對 test 和 TEst,但不會比對 teST 或 TEST。 是是是是是是是是不適用不適用否3.6是不適用ECMA否不適用不適用不適用不適用不適用不適用不適用
重設修改器 (?^) 關閉所有選項。插入符號後面可以加上修飾符號,以重新開啟某些選項。 (?i)te(?^)st 會比對 test 和 TEst,但不會比對 teST 或 TEST。 否否5.14否10.327.3.0否4.0.0不適用不適用否否否不適用否否不適用不適用不適用不適用不適用不適用不適用
不區分大小寫 (?i) 開啟不區分大小寫。 (?i)a 會比對 a 和 A。 是是是是是是是是不適用不適用是是是不適用ECMA是不適用不適用不適用不適用不適用不適用不適用
區分大小寫 (?c) 開啟區分大小寫。 (?c)a 會比對 a,但不會比對 A。 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
自由間距 (?x) 開啟自由間距模式,以忽略正規表示式代碼之間的空白,並允許 # 註解。 (?x)a#b 會比對 a 是是是是是是是是不適用不適用是是是不適用ECMA是不適用不適用不適用不適用不適用不適用不適用
自由間距 (?xx) 開啟自由間距模式,以忽略正規表示式代碼之間的空白,並允許 # 註解,包括字元類別內外。 (?xx)[ a] 會比對 a,但不會比對   否否5.26否10.307.3.0否4.0.0不適用不適用否否否不適用否否不適用不適用不適用不適用不適用不適用不適用
精確間距 (?t) 開啟「緊密」或精確間距模式,將空白和 # 字元視為字面值。 (?t)a#b 會比對 a#b 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
單行 (?s) 讓點符號比對所有字元,包括換行字元。 (?s).* 會在 ab\n\ndef 中比對 ab\n\ndef 是是是是是是是是不適用不適用是是否不適用ECMA否不適用不適用不適用不適用不適用不適用不適用
多行 (?m) 讓 ^ 和 $ 分別比對每一行的開頭和結尾。 (?m)^. 會在 ab\n\ndef 中比對 a 和 d 是是是是是是是是不適用不適用是是否不適用ECMA否不適用不適用不適用不適用不適用不適用不適用
單行 (?m) 讓點符號比對所有字元,包括換行字元。 (?m).* 會在 ab\n\ndef 中比對 ab\n\ndef 否否否否否否否否不適用不適用否否是不適用否否不適用不適用不適用不適用不適用不適用不適用
Tcl 單行 (?s) 讓 ^ 和 $ 僅在字串的開頭和結尾做比對。讓點號比對所有字元,包含換行字元。 (?s)^.{3} 僅比對 ab\n 在 ab\n\ndef 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
Tcl 多行 (?m) 讓 ^ 和 $ 在每一行的開頭和結尾做比對。不允許點號和否定字元類別比對換行字元。 (?m)^. 會在 ab\n\ndef 中比對 a 和 d 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
Tcl 多行 (?n) 讓 ^ 和 $ 在每一行的開頭和結尾做比對。不允許點號和否定字元類別比對換行字元。 (?n)^. 比對 a 和 d 在 ab\n\ndef 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
Tcl「部分」換行敏感 (?p) 讓 ^ 和 $ 僅在字串的開頭和結尾做比對。不允許點號和否定字元類別比對換行字元。 (?p)^.* 僅比對 ab 在 ab\n\ndef 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
Tcl「奇怪」換行敏感 (?w) 讓 ^ 和 $ 在每一行的開頭和結尾做比對。讓點號比對所有字元,包含換行字元。 (?w)^. 比對 a、第一個 \n 和 d 在 ab\n\ndef 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
明確擷取 (?n) 一般括號是非擷取群組,而非編號擷取群組。只有命名擷取群組實際會擷取。 (?n)(a|b)c 與 (?:a|b)c 相同 是否5.22否10.307.3.0否4.0.0不適用不適用是否否不適用否否不適用不適用不適用不適用不適用不適用不適用
重複命名群組 (?J) 允許多個命名擷取群組共用相同名稱。 (?J)(?:(?'x'a)|(?'x'b))\k'x' 符合 aa 或 bb 否否否6.7是5.2.0是是不適用不適用否否否不適用否否不適用不適用不適用不適用不適用不適用不適用
非貪婪量詞 (?U) 切換 貪婪量詞和非貪婪量詞 的語法。強烈建議不要使用,因為它會混淆標準量詞語法的意義。 (?U)a* 是非貪婪的,而 (?U)a*? 是貪婪的 否否否是是是是是不適用不適用否否否不適用否否不適用不適用不適用不適用不適用不適用不適用
UNIX 行 (?d) 當錨點符合換行符號,且點號不符合換行符號時,讓它們只辨識換行符號作為換行符號 (?dm)^. 在 a\rb\nc 中符合 a 和 c 否是否否否否否否不適用不適用否否否不適用否否不適用不適用不適用不適用不適用不適用不適用
BRE (?b) 將正規表示式解釋為 POSIX BRE (?b)a\+ 符合 aaa 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
ERE (?e) 將正規表示式解釋為 POSIX ERE (?e)[a\]+ 符合 a\a\a 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
文字 (?q) 將正規表示式解釋為文字字串(不包含修飾符) (?q)[a\]+ 以文字方式符合 [a\]+ 否否否否否否否否不適用不適用否否否不適用否是不適用不適用不適用不適用不適用不適用不適用
額外語法 (?X) 將以反斜線跳脫且未形成正規表示式記號的字母視為錯誤,而不是文字。 (?X)\q 是錯誤,而 (?-X)\q 符合 q 否否否是否5.0.0–7.2.34是2.14.0–3.6.3不適用不適用否否否不適用否否不適用不適用不適用不適用不適用不適用不適用
功能語法說明範例.NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
Regular Expression Reference: Mode Modifiers
  • 简
  • 繁
  • En
About Regular Expressions » Regular Expressions Reference » Regular Expression Reference: Mode Modifiers

Regex Reference
Introduction
Table of Contents
Quick Reference
Characters
Basic Features
Character Classes
Shorthands
Anchors
Word Boundaries
Quantifiers
Unicode
Capturing Groups & Backreferences
Named Groups & Backreferences
Special Groups
Mode Modifiers
Recursion & Balancing Groups
Replacement Reference
Characters
Matched Text & Backreferences
Context & Case Conversion
Conditionals
More on This Site
Introduction
Regular Expressions Quick Start
Regular Expressions Tutorial
Replacement Strings Tutorial
Applications and Languages
Regular Expressions Examples
Regular Expressions Reference
Replacement Strings Reference

Regular Expression Reference: Mode Modifiers

Mode modifier syntax consists of two elements that differ among regex flavors. Parentheses and a question mark are used to add the modifier to the regex. Depending on its position in the regex and the regex flavor it may affect the whole regex or part of it. If a flavor supports at least one modifier syntax, then it will also support one or more letters that can be used inside the modifier to toggle specific modes. If it doesn’t, “n/a” is indicated for all letters for that flavors.

If a flavor supports mode modifiers but does not support a particular letter, it will be indicated as “no”. That does not mean that the flavor doesn’t have this mode at all. The flavor may still have the mode, but no option to turn it off. Modes are also not necessarily off by default. For example, in most regex flavors, ^ and $ match at the start and end of the string only by default. But Ruby matches at the start and end of each line by default. You cannot turn off this mode in Ruby. (?-m) affects the dot rather than the anchors in Ruby.

The table below only indicates whether each flavor supports a particular letter to toggle a particular mode. It does not indicate the defaults.

FeatureSyntaxDescriptionExample.NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
Mode modifier (?letters) at the start of the regex A mode modifier at the start of the regex affects the whole regex and overrides any options set outside the regex. (?i)a matches a and A. YESYESYESYESYESYESYESYESnonoYESYESYESnoECMAYESnonononononono
Mode modifier (?letters) in the middle of the regex A mode modifier in the middle of the regex affects the whole regex and overrides any options set outside the regex. te(?i)st matches test, teST, TEst and TEST. nononononononononononoYESnonononononononononono
Mode modifier (?letters) in the middle of the regex A mode modifier in the middle of the regex affects only the part of the regex to the right of the modifier. If the modifier is used inside a group, it only affects the part of the regex inside that group to the right of the modifier. If the regex or group uses alternation, all alternatives to the right of the modifier are affected. te(?i)st matches test and teST but not TEst or TEST. YESYESYESYESYESYESYESYESnonononoYESnoECMAnononononononono
Modifier group (?letters:regex) Non-capturing group with modifiers that affect only the part of the regex inside the group. te(?i:st) matches test and teST but not TEst or TEST. YESYESYESYESYESYESYESYESnonono3.6YESnoECMAnononononononono
Negative modifier (?on-off) and (?on-off:regex) Modifier letters (if any) before the hyphen are turned on, while modifier letters after the hyphen are turned off. (?i)te(?-i)st matches test and TEst but not teST or TEST. YESYESYESYESYESYESYESYESn/an/ano3.6YESn/aECMAnon/an/an/an/an/an/an/a
Reset modifiers (?^) Turn off all options. The caret can be followed by modifier letters to turn some options back on. (?i)te(?^)st matches test and TEst but not teST or TEST. nono5.14no10.327.3.0no4.0.0n/an/anononon/anonon/an/an/an/an/an/an/a
Case insensitive (?i) Turn on case insensitivity. (?i)a matches a and A. YESYESYESYESYESYESYESYESn/an/aYESYESYESn/aECMAYESn/an/an/an/an/an/an/a
Case sensitive (?c) Turn on case sensitivity. (?c)a matches a but not A. nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Free-spacing (?x) Turn on free-spacing mode to ignore whitespace between regex tokens and allow # comments. (?x)a#b matches a YESYESYESYESYESYESYESYESn/an/aYESYESYESn/aECMAYESn/an/an/an/an/an/an/a
Free-spacing (?xx) Turn on free-spacing mode to ignore whitespace between regex tokens and allow # comments, both inside and outside character classes. (?xx)[ a] matches a but not   nono5.26no10.307.3.0no4.0.0n/an/anononon/anonon/an/an/an/an/an/an/a
Exact spacing (?t) Turn on “tight” or exact spacing mode to treat whitespace and # characters as literals. (?t)a#b matches a#b nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Single-line (?s) Make the dot match all characters including line break characters. (?s).* matches ab\n\ndef in ab\n\ndef YESYESYESYESYESYESYESYESn/an/aYESYESnon/aECMAnon/an/an/an/an/an/an/a
Multi-line (?m) Make ^ and $ match at the start and end of each line. (?m)^. matches a and d in ab\n\ndef YESYESYESYESYESYESYESYESn/an/aYESYESnon/aECMAnon/an/an/an/an/an/an/a
Single-line (?m) Make the dot match all characters including line break characters. (?m).* matches ab\n\ndef in ab\n\ndef nonononononononon/an/anonoYESn/anonon/an/an/an/an/an/an/a
Tcl single-line (?s) Make ^ and $ match at the start and end of the string only. Make the dot match all characters including line break characters. (?s)^.{3} matches only ab\n in ab\n\ndef nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Tcl multi-line (?m) Make ^ and $ match at the start and end of each line. Do not allow the dot and negated character classes to match line break characters. (?m)^. matches a and d in ab\n\ndef nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Tcl multi-line (?n) Make ^ and $ match at the start and end of each line. Do not allow the dot and negated character classes to match line break characters. (?n)^. matches a and d in ab\n\ndef nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Tcl “partial” newline-sensitive (?p) Make ^ and $ match at the start and end of the string only. Do not allow the dot and negated character classes to match line break characters. (?p)^.* matches only ab in ab\n\ndef nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Tcl “weird” newline-sensitive (?w) Make ^ and $ match at the start and end of each line. Make the dot match all characters including line break characters. (?w)^. matches a, the first \n, and d in ab\n\ndef nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Explicit capture (?n) Plain parentheses are non-capturing groups instead of numbered capturing groups. Only named capturing groups actually capture. (?n)(a|b)c is the same as (?:a|b)c YESno5.22no10.307.3.0no4.0.0n/an/aYESnonon/anonon/an/an/an/an/an/an/a
Duplicate named groups (?J) Allow multiple named capturing groups to share the same name. (?J)(?:(?'x'a)|(?'x'b))\k'x' matches aa or bb nonono6.7YES5.2.0YESYESn/an/anononon/anonon/an/an/an/an/an/an/a
Ungreedy quantifiers (?U) Switches the syntax for greedy and lazy quantifiers. Its use is strongly discouraged because it confuses the meaning of the standard quantifier syntax. (?U)a* is lazy and (?U)a*? is greedy nononoYESYESYESYESYESn/an/anononon/anonon/an/an/an/an/an/an/a
UNIX lines (?d) When anchors match at line breaks and when the dot does not match line breaks, make them recognize only the line feed character as a line break (?dm)^. matches a and c in a\rb\nc noYESnonononononon/an/anononon/anonon/an/an/an/an/an/an/a
BRE (?b) Interpret the regular expression as a POSIX BRE (?b)a\+ matches aaa nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
ERE (?e) Interpret the regular expression as a POSIX ERE (?e)[a\]+ matches a\a\a nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Literal (?q) Interpret the regular expression as a literal string (excluding the modifier) (?q)[a\]+ matches [a\]+ literally nonononononononon/an/anononon/anoYESn/an/an/an/an/an/an/a
Extra syntax (?X) Treat letters that are escaped with a backslash and that don’t form a regex token as an error instead of as a literal. (?X)\q is an error while (?-X)\q matches q nononoYESno5.0.0–7.2.34YES2.14.0–3.6.3n/an/anononon/anonon/an/an/an/an/an/an/a
FeatureSyntaxDescriptionExample.NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
©2015-2025 艾丽卡 support@alaica.com