逸出字元
\ 轉義緊隨的元字元
\Q 轉義所有緊隨的元字元直到\E
\E 與\Q搭配使用,轉義包含的所有元字元
\\ 反斜線
\uhhhh 16進位Unicode字元U+hhhh
\xhh 16進位Unicode字元U+00hh
\cx ASCII控制字元^x(所以\cH表示^H,U+0008)
\a ASCII字元U+0007,BELL
\e ASCII字元U+001b,ESC
\f ASCII字元U+000c
\n ASCII字元U+000a,換行
\r ASCII字元U+000d,斷行符號
\t ASCII字元U+0009,製表位
字元類
[abc] 在集合中的任一字元
[a-c] 在由範圍定義的集合中的任一字元
[^abc] 在補集中的任一字元
[[a-f][0-9]] 在並集中的任一字元
[[a-z]&&[jkl]] 在交集中的任一字元
. 任一字元
\d 任一數字字元
\D 任一非數字字元
\s 任一空白字元
\S 任一非空白字元
\w 任一字母字元
\W 任一非字母字元
\p{NAME} 任一屬於指定名稱字元類的字元
\P{NAME} 任一不屬於指定名稱字元類的字元
量詞
* 0或多個
? 0或1個
+ 1或多個
{n} 恰好n個
{n,} 至少n個
{n,m} 至少n個且不超過m個
<量詞> 預設為貪婪量詞,貪婪量詞之所以稱之為“貪婪的”,這是由於它們強迫匹配器讀入(或者稱之為吃掉)整個輸入的字串,來優先嘗試第一次匹配,如果第一次嘗試匹配(對於整個輸入的字串)失敗,匹配器會通過回退整個字串的一個字元再一次進行嘗試,不斷地進行處理直到找到一個匹配,或者左邊沒有更多的字元來用於回退了。賴於在運算式中使用的量詞,最終它將嘗試地靠著 1 或 0 個字元的匹配。
<量詞>? 勉強量詞採用與貪婪量詞相反的途徑:從輸入字串的開始處開始,因此每次勉強地吞噬一個字元來尋找匹配,最終它們會嘗試整個輸入的字串。
<量詞>+ 侵佔量詞始終是吞掉整個輸入的字串,嘗試著一次(僅有一次)匹配。不像貪婪量詞那樣,侵佔量詞絕不會回退,即使這樣做是允許全部的匹配成功。
邊界匹配器
^ 行首
$ 行尾
\A 輸入的開頭
\b 單詞邊界
\B 非單詞邊界
\G 上一個匹配的結尾
\z 輸入的結尾,僅用於最後的結束符(如果有的話)
\Z 輸入的結尾