本コンテンツはプロモーションが含まれます。

正規表現

スポンサーリンク
スポンサーリンク

正規表現(Regular Expression)とは

正規表現(Regular Expression、regex)は、文字列のパターンマッチングや検索・置換などを行うための強力なツールです。プログラム内で複雑な文字列操作を簡潔に行うために使用されます。

正規表現の構文

正規表現は、特定の文字列パターンを記述するためのシンタックス(構文)を持っています。以下に、基本的な正規表現の構成要素を紹介します。

文字クラス:

  • [abc]:a、b、またはcのいずれか1文字
  • [0-9]:0から9までのいずれか1文字
  • [^abc]:a、b、またはc以外のいずれか1文字
パターン意味比較する文字列結果
[a-z]アルファベット小文字を探すabcd
[a-z0-9]アルファベットと数字を探すABC×

量指定子:

  • *:0回以上の繰り返し
  • +:1回以上の繰り返し
  • ?:0回または1回の繰り返し
  • {n}:ちょうどn回の繰り返し
  • {n,m}:n回からm回の繰り返し

アンカー:

  • ^:文字列の先頭
  • $:文字列の末尾
パターン意味検索する文字列結果
^ababで始まっている文字列を検索するabc
^ab上記と同じxab×
ab$abで終了している文字列を検索するcab

特殊文字:

  • .:任意の1文字
  • \d:任意の数字(0-9)
  • \w:任意の単語構成文字(アルファベット、数字、アンダースコア)
  • \s:任意の空白文字(スペース、タブなど)
パターン意味検索する文字列結果
a.baとbの間に一文字入っている文字列を検索するacb
a.b上と同じacdb×
a..caとcの間に2文字入っている文字列を検索するabdc

正規表現の例

パターンは複数組み合わせることが出来ます。

パターン 意味 検索する文字列 結果
\d{3}-\d{4}

数値が3文字続いた後ハイフンを一文字挟んで数値が4文字続く(郵便番号)

123-4567
[\w\-._]+@[\w\-._]+\.[A-Za-z]+

@の前は「英数字と-と.と_」で構成されていて@の後に「英数字と-と.と_」が一文字以上と.を挟んで「英数文字」1文字以上で終わる(メールアドレス)

hoge_hoge@sample.com

まとめ

 ここでは正規表現について学びました。

 強力な文字列検索に使用できることが理解できたかと思います。

 他にも基本構文を組み合わせる事で複雑な検索をすることが出来ます。

 複雑なものはネットでゴロゴロ転がっていますのでそちらを参照してください。

 尚、ここであげた正規表現は標準ライブラリである正規表現を扱う前提知識です。

コメント