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 的語法在不同程式語言中的實作可能略有差異,但用法是一樣的。

Regular expression 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+

替代模式:

$`

輸入字串:

AAABBCC

結果字串:

AAAAAACC

替代相符項目後的文字 $'

規則運算式模式:

B+

替代模式:

$'

輸入字串:

AABBCC

結果字串:

AACCCC

替代最後擷取的群組 $+

規則運算式模式:

B+(C+)

替代模式:

$+

輸入字串:

AABBCCDD

結果字串:

AACCDD

替代整個輸入字串 $_

規則運算式模式:

B+

替代模式:

$_

輸入字串:

AABBCC

結果字串:

AAAABBCCCC