替代基礎知識
使用正規表示式替換文字的最常用和最有用的方法之一是使用捕獲組 。
甚至是命名捕獲組 ,作為儲存或替換資料的參考。
在正規表示式的文件中有兩個非常相似的術語,因此從不混淆替換 (即 $1
)和 反向引用 (即\1
) 可能很重要。替換條款用於替換文字; 反向引用,在純正的 Regex 表示式中。儘管一些程式語言同時接受替換,但這並不令人鼓舞。
讓我們說我們有這個正規表示式:/hello(\s+)world/i
。每當引用 $number
時(在這種情況下,$1
),將替換\s+
匹配的空格。
正規表示式將會暴露出相同的結果:/hello(?<spaces>\s+)world/i
。由於我們在這裡有一個命名組,我們也可以使用 ${spaces}
。
在同一個例子中,我們也可以使用 $0
或 $&
( 注意: $&
可以用作 $+
,意思是在其他正規表示式引擎中檢索最後的捕獲組),這取決於你正在使用的正規表示式,獲得完整匹配的文字。 (即 $&
將返回 hEllo woRld
作為字串:hEllo woRld of Regex!
)
通過使用 $number
和 ${name}
語法,使用 John Lennon 的改編引用來檢視這個簡單的替換示例:
簡單捕獲組示例: