跳轉到內容

正則表示式/語法

來自華夏公益教科書,開放的書籍,開放的世界

正則表示式有幾種變體。這些變體不僅在具體語法上有所不同,而且在功能上也有所不同。支援正則表示式的各個工具也有其自身的特點。

貪婪表示式

[編輯 | 編輯原始碼]

諸如 * 和 + 之類的量詞儘可能多地匹配:它們是貪婪的。對於某些用途,它們的貪婪程度並不合適。例如,假設你想在以下文字中找到第一個用引號括起來的字串

這些詞包括“cat”、“mat”和“pat”。

模式 ".*" 匹配下面文字的斜體部分,即 "cat","mat",和 "pat" 而不是所需的 "cat"

這些詞包括 "cat","mat",和 "pat"

為了解決這個問題,某些版本的正則表示式提供了非貪婪運算子,例如 *?、+? 和 }?。在 PHP 中,在正則表示式末尾新增“U”會使量詞非貪婪,如 /".*"/U。在不支援上述兩種選項的版本中,你可以指定 要匹配的內容,如 ("[^"]*") 來解決討論的示例。但是,在處理帶括號的表示式時,(\[\[[^\]]*\]\]) 無法匹配 A B C [[D E] F G]]

比較表

[編輯 | 編輯原始碼]

一個比較表或矩陣,顯示了哪些功能或版本的正則表示式在哪些工具或程式語言中可用,可以從 regular-expressions.info 獲得。

簡介 · 實現

簡介 · 正則表示式 · 實現
華夏公益教科書