跳轉到內容

正則表示式/POSIX 現代正則表示式

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

POSIX 現代(擴充套件)正則表示式

[編輯 | 編輯原始碼]

更現代的“擴充套件”正則表示式通常可以在現代 Unix 實用程式中使用,方法是在命令列中新增“-E”標誌。

POSIX 擴充套件正則表示式在語法上與傳統的 Unix 正則表示式類似,但也有一些例外。添加了以下元字元

  • + — 匹配最後一個“塊”一次或多次 - “ba+” 匹配 “ba”、 “baa”、 “baaa” 等等
  • ? — 匹配最後一個“塊”零次或一次 - “ba?” 匹配 “b” 或 “ba”
  • | — 選擇(或集合並)運算子:匹配運算子之前或之後的表示式 - “abc|def” 匹配 “abc” 或 “def”。

此外,反斜槓被移除:\{...\} 變成 {...},而 \(...\) 變成 (...). 例子

  • "[hc]+at" 匹配 "hat"、"cat"、"hhat"、"chat"、"hcat"、"ccchat" 等等。
  • "[hc]?at" 匹配 "hat"、"cat" 和 "at"
  • "([cC]at)|([dD]og)" 匹配 "cat"、"Cat"、"dog" 和 "Dog"

由於字元 '(', ')', '[', ']', '.', '*', '?', '+', '^' 和 '$' 用作特殊符號,因此如果它們是字面意思,則必須對其進行轉義。這是透過在它們前面加上 '\' 來完成的,因此如果它們是字面意思,則也必須以這種方式對其進行轉義。例子

"a\.(\(|\))" 匹配字串 "a.)" 或 "a.("
華夏公益教科書