正規表現基礎(1)
- 2022年12月15日
- 技術情報
今回はさまざまなプログラミング言語やツールで活用できる正規表現の基礎文法を紹介します。
正規表現とは
正規表現は、Regular Expression (RegExと略される)の日本語訳で、
Java, PHP, JavaScript, Python, LinuxのGrepコマンドなど、さまざまなプログラミング言語やツールでStringのパターンマッチング処理に使用できます。
例として、メールアドレス、電話番号、郵便番号、など、パターン化された文字列のバリデーション判定に使用したり、テキスト検索やテキスト置換の条件設定に使用できます。
正規表現の例
例えば入力された電子メールのフォーマットが正しいかどうかを
チェックする場合、以下のような条件に一致しているかどうかチェックする必要があります。
(説明を簡単にするために基本条件のみを記載しています。厳密な電子メールのフォーマットチェックをおこなうにはさらに多くの条件設定が必要です)
・半角英数および「_」「+」「-」以外の記号が使われていないこと
・@がひとつのみ含まれること
・@の前に1文字以上の文字があること
・@の後ろに3文字以上の文字があること
・@の後ろに「.」(ドット)が含まれること
・「.」(ドット)の前に1文字以上の文字があること
・「.」(ドット)の後ろに1文字以上の文字があること
上記の条件に一致しているかどうかを確認するプログラムを、いちから作成するのはforループで1文字ずつ取り出してif文で上記の判定条件をひとつずつクリアする処理の作成をおこなうなど複数行に渡る多くの処理が必要になります。
一方、正規表現を活用した場合は1行で設定できます。上記の電子メールのフォーマットチェックの判定条件を正規表現であらわすと以下のようになります。
(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_.+-]+\.[a-zA-Z0-9_.+-]+$)
正規表現はコンパクトに記載できるものの使用される記号や構文の意味がわからないと何を示しているのか理解することは難しいです。
よく使用されるパターンの正規表現サンプルはStackOverflowなどで公開されているものも多いので
定評のあるものをそのまま流用することもできますが、
少しアレンジを加えたい場合や、自分で新規に作成する必要がある場合などは、正規表現で使用される記号や文法の意味の理解が必要になります。
次回は「正規表現の基礎文法とマッチング確認」について紹介したいと思います。
木曜日担当:nishida
nishida at 2022年12月15日 10:00:00