• 締切済み

正規表現メタ文字「-」のエスケープについて

いつもお世話になります。 正規表現のメタ文字のエスケープ処理を行いたいのですが、「-」の記号については、「[」「]」の中に出てきたときのみ([a-z]、[0-9]など)、エスケープの対象になります。 この場合、どのような正規表現を指定すれば、エスケープを行うことができるでしょうか。 例)  [a-z|A-z] ⇒ [a\-z|A\-z] 宜しくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

何を求めているのかよくわかりませんが、Pattern.quote() に相当することを自前でやりたいと言うことでしょうか? \Q と \E で囲んで、\Q[a-z|A-Z]\E のようにするのが簡単でしょう。 そうではなくて、文字クラスの中で - を使いたいと言うことであれば、No1の方がお書きのように、 [ の直後または ] の直前に - を書きます。

kamakuragengorou
質問者

お礼

返答ありがとうございます。 返事が遅くなってしまい申し訳ありません。 実現したいことは、「-」の文字を、「[」「]」内のときだけ一括でエスケープすることができる正規表現は、何を指定すればよいか、ということになります。 私の質問の仕方が悪かったため、今一度質問しなおそうと思います。 ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ふつ~に \- でできませんか? Java の正規表現の仕様は知らんけど, ことによると [ の直後, あるいは ] の直前に書く だけでいいかもしれん.

kamakuragengorou
質問者

お礼

返答ありがとうございます。 返事が遅くなってしまい申し訳ありません。 実現したいことは、「-」の文字を、「[」「]」内のときだけ一括でエスケープすることができる正規表現は、何を指定すればよいか、ということになります。 私の質問の仕方が悪かったため、今一度質問しなおそうと思います。 ありがとうございました。

関連するQ&A