• ベストアンサー

テキストエディタなどでの正規表現を利用しての置換に

以下のように三桁の数字の後ろにaがついたものをbに置換したいです。ツールによって異なるとは思うのですが検索-置換をどのように設定したら思うような動作をしますでしょうか? 545a 567a 875a ↓ 545b 567b 875b 検索 [0-9][0-9][0-9]a 置換 [0-9][0-9][0-9]b

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

正規表現はソフトによって違うので、特定のものでやりたいなら、そのソフト名を明記するのが近道です。 EmEditorで使えるのは、以下のもののようです。 http://jp.emeditor.com/help/howto/search/search_regexp_syntax.htm 正規表現を使った置換で、検索側にある文字列を置換側で使う場合は「後方参照」というものを使います。 先の資料を見ると ・後方参照に使えるグルーピングを行う表現は() ・後方参照は\数字 だということがわかります。 ということで 検索: ([0-9][0-9][0-9])a 置換: \1b です。 #1さんのソフトでは、後方参照が$数字 #2さんのソフトでは、グルーピングが\(\) だったということです。 なお、EmEditorは使ってないので、実際に使えるかどうかの確認はしていません。

noname#133961
質問者

お礼

見事出来ました。正規表現にもかなり方言があるのですね。ある程度は統一されているものと思っていました。ご回答ありがとうございました。

その他の回答 (3)

回答No.4

三桁の数字だけの行があり、その行の数字の後ろを置換すると いう条件だけでしょうか? 例えば三桁以外の桁数の数字があり、行頭以外にも数字がある という条件だと複雑になります。 単純に三桁のみの数字についたaをbに変えるだけなら、以下の ようのものでも可能です。 [置換]ダイアログで[正規表現を使用する]へとチェックする。 [検索する文字列] → ^([0-9]{3})a [置換後の文字列] → \1b

noname#133961
質問者

お礼

3桁以外の数字も混在しているテキストなのです。ANo.3さんのグルーピング機能で目的を達することが出来ました。ご回答ありがとうございました。

  • morchin
  • ベストアンサー率16% (212/1281)
回答No.2

手元のテキストエディタで試しました。以下で出来ました。 検索 \([0-9][0-9][0-9]\)a 置換 \1b

noname#133961
質問者

お礼

ご回答ありがとうございました。私の使っているソフトウェア(EmEditor)ではどうもできないようでした。

  • morchin
  • ベストアンサー率16% (212/1281)
回答No.1

キャプチャを利用します。 検索 ([0-9]{3})a 置換 $1b 試していませんが、上記のような感じ。

noname#133961
質問者

お礼

ご回答ありがとうございました。私の使っているソフトウェア(EmEditor)ではどうもできないようでした。

関連するQ&A