Regex 正規表示法 - 替換 (Substitution)

替換 (substitution) 是只能用在取代模式 (replacement) 下的語法。

語法說明
$number
${number}
number 表示匹配的群組 (capturing group),群組編號從 1 開始 $1。$ 後面接著的所有數字都會被解讀為屬於 number 群組,如果這不是你希望的,你可以用 ${number} 語法,例如用 ${1}1 就不會被解讀為第 11 個群組,而是第 1 個。
${name}用來引用 Named Capturing Group 的值。
$$用來跳脫 (escape) $ 的特殊意義,表示 $ 字元。
$&用來引用整個匹配的字串。
$`用來引用匹配字串的前面的所有字 (before match)。
$'用來引用匹配字串的後面的所有字 (after match)。
$+用來引用匹配的最後一個群組。
$_用來引用整個輸入的字串。

Substitution 的語法在不同程式語言中的實作可能略有差異,但用法是一樣的。

使用範例:

語法模式取代模式輸入字串結果字串
$number
${number}
\b(\w+)(\s)(\w+)\b$3$2$1"one two""two one"
${name}\b(?<word1>\w+)(\s)(?<word2>\w+)\b${word2} ${word1}"one two""two one"
$$\b(\d+)\s?USD$$$1"103 USD""$103"
$&\$?\d*\.?\d+($&)"$1.30""($1.30)"
$`B+$`"AABBCC""AAAACC"
$'B+$'"AABBCC""AACCCC"
$+B+(C+)$+"AABBCCDD""AACCDD"
$_B+$_"AABBCC""AAAABBCCCC"