本網站的更多內容 |
簡介 |
正規表示式快速入門 |
正規表示式教學 |
替換字串教學 |
應用程式和語言 |
正規表示式範例 |
正規表示式參考 |
替換字串參考 |
書籍評論 |
可列印 PDF |
關於本網站 |
RSS 饋送和部落格 |
通常,比對模式會在正規表示法外指定。在程式語言中,您可以將它們作為標記傳遞給正規表示法建構函式,或附加到正規表示法文字。在應用程式中,您會切換適當的按鈕或核取方塊。您可以在本網站的工具和語言區段中找到詳細資訊。
有時,工具或語言不提供指定比對選項的功能。在Java中方便的String.matches()方法不採用比對選項參數,例如Pattern.compile()。或者,正規表示法風格可能支援未顯示為外部標記的比對模式。在R中的正規表示法函式具有ignore.case作為其唯一選項,即使基礎PCRE函式庫具有比本教學課程中討論的任何其他函式庫更多的比對模式。
在這些情況下,您可以將下列模式修改器新增到正規表示法的開頭。若要指定多個模式,只需將它們放在一起,如
。現代正規表示式風格允許您僅對正規表示式的一部分套用修改器。如果您在正規表示式的中間插入修改器
,則修改器僅套用於修改器右方的正規表示式部分。使用這些風格,您可以透過在減號前面加上減號來關閉模式。減號後的全部模式都會關閉。例如, 會開啟不區分大小寫,並關閉單行模式和多行模式。如果一種風格無法對正規表示式的一部分套用修改器,則它會將正規表示式中間的修改器視為錯誤。 Python 是此規則的例外。在 Python 中,將修改器放在正規表示式中間會影響整個正規表示式。因此,在 Python 中,不區分大小寫 和 不區分大小寫 都不區分大小寫。在所有其他風格中,尾隨模式修改器不具任何效果或會變成錯誤。
你可以快速測試你正在使用的正則表達式風味如何處理模式修飾符。正則表達式 test 應該會符合 test 和 TEst,但不會符合 teST 或 TEST。
與其使用兩個修飾符,一個用來開啟選項,一個用來關閉選項,你可以使用修飾符範圍。 caselesscasedcaseless 等於 caseless(?-i:cased)caseless。這個語法類似於 非擷取群組 (?:group)。你可以將非擷取群組視為不會改變任何修飾符的修飾符範圍。但是,有些風味,例如 JavaScript、Python 和 Tcl 支援非擷取群組,即使它們不支援修飾符範圍。與非擷取群組一樣,修飾符範圍不會建立 反向參照。
修飾符範圍受到所有允許你在正規表達式中間使用模式修飾符的正則表達式風味支援,而且僅受到這些風味支援。這些風味包括 JGsoft 引擎、.NET、Java、Perl 和 PCRE、PHP、Delphi 和 R。
| 快速入門 | 教學 | 工具與語言 | 範例 | 參考 | 書籍評論 |
| 簡介 | 目錄 | 特殊字元 | 非可列印字元 | 正則表達式引擎內部 | 字元類別 | 字元類別減法 | 字元類別交集 | 簡寫字元類別 | 點 | 錨點 | 字詞邊界 | 交替 | 可選項目 | 重複 | 群組與擷取 | 反向參照 | 反向參照,第 2 部分 | 命名群組 | 相對反向參照 | 分支重設群組 | 自由間距與註解 | Unicode | 模式修飾符 | 原子群組 | 佔有量詞 | 前瞻與後顧 | 前瞻與後顧,第 2 部分 | 將文字保留在符合範圍之外 | 條件式 | 平衡群組 | 遞迴 | 子常式 | 無限遞迴 | 遞迴與量詞 | 遞迴與擷取 | 遞迴與反向參照 | 遞迴與回溯 | POSIX 方括號表示式 | 零長度符合 | 繼續符合 |
頁面網址:https://regular-expressions.dev.org.tw/modifiers.html
頁面最後更新:2021 年 9 月 2 日
網站最後更新時間:2024 年 3 月 15 日
版權所有 © 2003-2024 Jan Goyvaerts。保留所有權利。