yusuke_f's blog

日記。それ以上でも以下でもない。

正規表現について勉強したよ!!

[概要]

正規表現の基本的な考え方は、「すべての文字(あるいは記号)は文字パターンや文字クラスとして表現可能である」ということ。
メタキャラクタと呼ばれる記号を用いて、同じ傾向の文字列を一気に指定する。
基本的なものだけでも覚えておくと、作業の効率化が期待できる。

[仕事における使用]

秀丸の「検索」、あるいは「置換」の設定で「正規表現」のチェックボックスにチェックを入れておくこと)

  • プログラムの中でコードの一部として記述する

[用例]

  • 数字(半角)の1、3、5のいずれか1文字以上が使用されている文字列 [135]
  • 数字(半角)の1文字以上が使用されている文字列 [1-9]
  • アルファベット(半角小文字)の1文字以上が使用されている文字列 [a-z]
  • アルファベット(全角大文字)の1文字以上が使用されている文字列 [A-Z] ※"[]"や"-"は常に半角を使用

[メタキャラクタの種類と用例]

※メタキャラクタは全て半角記号を用いる

  • []カッコ内のいずれか1文字以上が使用されている文字列
    • 例:[135] 数字(半角)の1、3、5のいずれかが1文字以上含まれている
  • - 連続する文字列
    • 例:[A-Z] 全角アルファベットが1文字以上含まれている
  • + 直前の文字、1回以上繰り返し
    • 例:[a-zA-Z0-9]+ 半角英数の組み合わせ BGM、www、CO2等
  • * 直前の文字、0回以上繰り返し
    • 例:^[1-9]-*[1-9]*-*[1-9]* しおりの検索に使えます。「1」「1-1」「1-1-1」等がヒットする。
  • . スペースを含む任意の1文字
    • 例:.... 4文字を指定
  • | 文字列を区切る、いずれかの文字列に該当
    • 例:133|143|153

[他の検索Tips]

  • 「*」ワイルドカード、あらゆる文字列にヒット
    • 例:「*.*」←すべてのファイル名と拡張子
  • 「;」で区切ることによって拡張子が異なるものでもOK
    • 例:「*.txt;*.html」