JavaScriptとVBScriptとで正規表現の後方参照の記法がちがう?
JavaScriptとVBScriptとで正規表現の後方参照の記法がちがうということはありますでしょうか。
『漢数字』を【漢数字】に置換するサンプルマクロを書いてみます。
[JavaScript] var opt = eeFindReplaceRegExp + eeReplaceSelOnly + eeReplaceAll; document.selection.Replace("『([一二三四五六七八九十]+)』", "【1】", opt); document.HighlightFind = false;
[VBScript] Dim opt opt = eeFindReplaceRegExp + eeReplaceSelOnly + eeReplaceAll document.selection.Replace "『([一二三四五六七八九十]+)』", "【1】", opt document.HighlightFind = false
[サンプルテキスト] 孟子の三楽 『一』一家の者が無事であること。 『二』天にも人にも恥じるところのないこと。 『三』天下の英才を教育すること。自分の手元では、後方参照を ・JavaScriptでは 1 ・VBScriptでは 1 としないと正常に動作しません。
これは JavaScript と VBScript の文法の違いです。VBScript ではバックスラッシュ「」を単独で使用して構いませんが、JavaScript では、「」というようにもう1つのバックスラッシュでエスケープする必要があるからです。
江村さん、ご回答ありがとうございます。
すっきりしました!!
しばらく悩んでいました。
後方参照だけでなく、通常の検索でも同様ですね。
このトピックの投稿: 3