トップページ > 基礎知識 > 正規表現の利用シーンと良く使うサンプル

正規表現の利用シーンと良く使うサンプル


[初回公開] 2018年12月16日

正規表現は文字列を数学の式のように一つの形式で表すもので、これを使うことで作業や処理を瞬時に進めるためにシステム開発を始めウェブ制作などプログラムを扱う現場で活用されており、正規表現の利用シーンと正規表現のサンプルについて紹介する。

正規表現の利用シーンと良く使うサンプル

1. 正規表現とは

正規表現とは、数値や文字列を数学で用いられる公式のように一つの形式で表すことである。
例えば 1 や 2 といった一桁の数値は正規表現で [0-9] と表すことができ、膨大な文章やデータの中から正規表現で指定するパターンにマッチした箇所全てを検索したり、置換したりすることができる。

2. 正規表現の利用シーン

正規表現が利用されるシーンは主にシステム開発やウェブ制作などプログラムを扱う現場で用いられることが多く、特に文字列の検索・置換といった入力された文字の形式をチェックする際に利用される。
正規表現を利用するためには、プログラムを記述するテキストエディタやコーディングソフトの機能として実装されていたり、Python や PHP といったプログラム言語の処理に実装されている。

文字の検索・置換では大量にある文章などデータの中から指定するパターンの文字列を検索したり、検索でマッチした文字列を違う文字列に一括で置き換える際に利用される。
また、入力された文字の形式チェックでは、例えば EC サイトなど会員登録する際に入力するメールアドレスで、入力した文字列が @ を含むメールアドレスの形式になっているかチェックする場合に正規表現が利用される。

3. PHP での正規表現の利用例

プログラム言語の PHP において特定の形式にマッチするか正規表現を用いて判定する場合に関数の preg_match() か preg_match_all() を利用する。
下記は配列に入った文字列を正規表現で指定する型にマッチするか順番に判定する利用例である。

$text_arr = array( 'abcde12345', 'aaaaa@bbb.cc', 'http://zzzzz.yyyyy.xxxxx/', 'abcd---efgh---ijkl' ); foreach ( $text_arr as $var ) { if ( preg_match( "/{検出する正規表現}/", $var, $base ) ){ print_r( $base ); }else{ $printVar = "[" . $var . "] no match\n"; echo $printVar; } }

4. 正規表現の良く使うサンプル

正規表現で記載するパターンの中でデータの検索・置換やプログラムを扱う現場で良く利用されるサンプルを次の通り紹介する。

4-1. 半角英字 a ~ z でマッチ

入力されたデータやテキストファイルの中で半角英字(a ~ z)にマッチさせる場合の正規表現は次の通りである。

正規表現 → [a-z]+
abcde12345
aaaaa@bbb.cc
http://zzzzz.yyyyy.xxxxx/

4-2. @ より前の文字列にマッチ

入力されたメールアドレスやテキストファイルの中で @ より前の文字列にマッチさせる場合の正規表現は次の通りである。

正規表現 → (.)+@
abcde12345
aaaaa@bbb.cc
http://zzzzz.yyyyy.xxxxx/

4-3. 末尾が / にマッチ

入力されたデータやテキストファイルの中で末尾の / にマッチさせる場合の正規表現は次の通りである。

正規表現 → /$
abcde12345
aaaaa@bbb.cc
http://zzzzz.yyyyy.xxxxx/

4-4. 特定の文字列で囲まれた部分にマッチ

入力されたデータやテキストファイルの中で特定の文字列に囲まれた箇所をマッチする場合の正規表現は次の通りである。
下記では --- で囲まれた箇所を判定するようにしている。

正規表現 → (---.+---)
abcde12345
aaaaa@bbb.cc
http://zzzzz.yyyyy.xxxxx/ abcd---efgh---ijkl

関連記事