【PHP・正規表現】OR条件の可読性を高くする例|implode関数

PHPで正規表現を利用し複数の文字列を検索する場合、複数の文字列を'|'(パイプ)で区切るOR条件を利用すると思います。

今回は、その正規表現のOR条件を、implode関数を利用し文字列の可読性を高くする例となります。

【PHP・正規表現】OR条件の可読性を高くする例

以下は、ブラウザのユーザーエージェントから、スマホの場合のユーザーエージェントを検索する場合に使用される正規表現のOR条件の例ですが、検索する文字列が多いため可読性が低いです。

/iPhone|iPod|Android.*Mobile|Windows.*Phone|blackberry9500|blackberry9530|blackberry9520|blackberry9550|blackberry9800|webOS/i

上記のように、正規表現のOR条件で指定する文字列が多い場合、次のようにimplode関数を使うと可読性が高くなります。

implode関数の例

以下、implode関数を利用し、正規表現のOR条件で指定する例となります。

// 正規表現で検索する文字列を配列で指定
$useragents = array(
	'iPhone', // iPhone
	'iPod', // iPod touch
	'Android.*Mobile', // Android スマホ
	'Windows.*Phone', // Windows Phone
	'blackberry9500', // Storm
	'blackberry9530', // Storm
	'blackberry9520', // Storm v2
	'blackberry9550', // Storm v2
	'blackberry9800', // Torch
	'webOS' // Palm Pre Experimental
);
$pattern = '/' . implode( '|', $useragents ) . '/i';

implode関数で正規表現のOR条件を作成するには、OR条件に指定する文字列を第2引数に配列で指定し、第1引数に区切り文字列として'|'(パイプ)を指定します。

それにより、可読性が高い正規表現となります。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。