• ベストアンサー

正規表現について 連続する数字以外

3文字の数字以外で終わる行を探したいと考えています。 エディタで正規表現を用いた置換を行いたいと考えております。 例)  123 ヒットしない 12m ヒットさせたい 1/2 ヒットさせたい a12 ヒットさせたい aaa ヒットさせたい 例えば [^0-9]{3}\n だとNGだと思いますが、どのように記述すれば良いでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

3文字の中のどこかに、1文字でも数字以外があればいいのであれば、 [^0-9].{2}$|.[^0-9].$|.{2}[^0-9]$ でいいのでは。

liao
質問者

お礼

ありがとうございます。 出来ました。 3文字ではなく5文字といった要件の場合、同じ考えでやると相当なパターン数になっちゃいますが、 何か他の方法はないでしょうか? よろしくお願いいたします。

その他の回答 (4)

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

サクラエディタで (否定) 先読みはできそう. 後読みは... 鬼車を使えばできるか?

参考URL:
http://sakura-editor.sourceforge.net/htmlhelp/HLP000089.html
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

Perlでしたら (?<!>....) 後読みアサーションが失敗すれば[真]を使いますけど・・ while(<DATA>){ s/^(.*(?<!\d{3}))$/ヒットしたので置換したよ/g; print; }

回答No.3

じゃあこれで。 (?=.*[^0-9]).*$

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

その「エディタ」でどんな正規表現が使えるかによるような気がする. 否定先読みが使えれば簡単... かなぁ? あと, 実は「3文字の数字以外で終わる行」といったときに「1文字ないし 2文字しかない行」があるかどうか, そしてそれらにヒットさせるかどうかも問題になるかもしれん.

liao
質問者

お礼

ありがとうございます。 現在は sakuraエディタ を使っています (もっと便利なエディタがあれば変更可能です) 「1文字ないし 2文字しかない行」はありません。 もし、他のツールを活用した場合も含め、良い方法があれば教えてください。 よろしくお願いいたします。

関連するQ&A