- ベストアンサー
Javascriptでの正規表現(RegExp)
RegExpで「{a|b}」という文字列を「c」に書き換えるための正規表現はどう書けば良いのでしょうか? 雰囲気としては "XXXXXXXXX {a|b} YYYYYYYY".replace(new RegExp(正規表現, 'g'), "c"); → "XXXXXXXXX c YYYYYYYY" というのをやりたいです。 できれば"{a|b}"の部分は間にスペースやタブが入っても良いようにしたいのですが複雑になるなら"{a|b}"だけでも構いません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
JavaScript の正規表現は、一般に「正規表現リテラル」で記述するのが一般的です。性能とかエスケープ文字のバッティングとかが面倒なので。 new RegExp("正規表現", "g") → /正規表現/g 大括弧'{}' や 縦棒'|' は正規表現にて意味を持ちますので、エスケープ文字が必要です。 {a|b} → /\{a\|b\}/g 間にスペースやタブが入っても置換するには、空白文字クラスが0個以上と指定するのが良いでしょう /\{a\|b\}/g → /\{\s*a\s*\|\s*b\s*\}/g まとめると "XXXX{a|b}YYYY".replace(/\{\s*a\s*\|\s*b\s*\}/g, 'c');
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
document.write("XXXX\tXXXXX { a |\tb} YYYYYYYY".replace(/{\s*a\s*\|\s*b\s*}/, "c")); みたいなかんじ?
質問者
お礼
ありがとうございました。
お礼
ありがとうございました。 説明が詳しかったのでこちらをベストアンサーにさせて頂きます。