正則表示式/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.("