質問: 正規表現の置換について質問です。 例えば、 「-480円-2.2%」 のような文字列があったとします。 前半はカンマ区切りにもなり得る数値と円 後半は小数点以下があり得るパーセンテージです。 それを、 "-480","-2.2" という2つの文字列をダブルクオーテーションで囲ったカンマ区切りのデータに置き換えるために次のような正規表現を考えました。 パターン「(-*)(\d{1,3})(((,)\d{3})*)(円)(-*)(\d+)(.)(\d*)%」 置換文字列「"\1\2\4\","\7\8\9\10"」 上記の置換文字列は、後方参照の考え方で、パターンないのカッコの中の番号を引用しているのですが、 くせ者が、最後の\10というもので、これは10番目のパターンとして解釈して欲しいのですが、 「\1」と「0」という組み合わせと解釈されてしまい、以下のように置換されてしまいます。 "-480","-2.-0" 10番目以降のパターンを表現するには10という数字は使えないのでしょうか? 10番目以降のパターンを表現する方法がお分かりの方がいましたらご教示下さい。 また、単純に目的を達成する正規表現とその置換文字列のセットでも構いません。 その場合は、注釈を入れて説明して頂けると助かります。
回答: パターン (-?\d{1,3}(,\d{3})*)円(-?\d+(.\d+)?)% 置換 "\1","\2" ではどうでしょうか? だだし、上記は秀丸の場合なので、お使いの環境によっては \2ではなく、\3とか別の値になるかもしれません。