replace-regexpの問題 - 置換えに\が無効です

私はいくつかのJSコードに余分な式を追加したいが、正しい要素IDを扱う(以下の例ではIDは scatter )。

document.getElementById("scatter").height="400"; -->
document.getElementById("scatter").height="400"; document.getElementById("scatter").style="visibility: visible"; 

これまでの私の試みは次のとおりです:

M-x replace-regexp RET 
Id("\(\w+\)").height="400"; RET 
Id("\0").height="400"; document.getElementById("\0").style="visibility: visible";

\(\ w + \)は要素IDを取得し、 \ 0 は置換文字列でそれを参照します。 残念ながら replace は誤って \ を使用していると不平を言います。

誰かが間違っていることを指摘できますか?

3
\ 0 の代わりに \ 1 を試してください。
追加された 著者 Ryan Eastabrook,
それはそれを解決しました。
追加された 著者 tomasr,

1 答え

正規表現の置換パターンでは、 \ N はサブグループと一致し、 \ 1 ではなく、最初のサブグループと一致します。

I just filed Emacs bug #23884 to help clarify the doc about this.

2
追加された