.net column

.NET開発者のためのブログメディア

[PHP]preg_matchで正規表現マッチングを行う方法とは?preg_match_allの使い方を紹介

公開日時:  
[PHP]preg_matchで正規表現マッチングを行う方法とは?preg_match_allの使い方を紹介
基本情報技術者試験の試験対策はこちら>>

SE
マッチングについて教えてください。

PM
では、preg_matchでのマッチング方法を、実際のコードを見ながら理解を深めていきましょう。

[PHP]preg_matchで正規表現マッチングを行う方法とは?


今回は、PHPでのpreg_matchで正規表現マッチングを行う方法について説明します。

ここでは、
・preg_matchの基本的な使い方
・配列の指定
・動作フラグ
・大文字小文字を区別しないマッチング
・ワード境界マッチング
・配列のマッチング
・preg_match_allによるマッチング
・複数条件(and)のマッチング
について紹介します。

PHPでのpreg_matchで正規表現マッチングを行う方法に興味のある方はぜひご覧ください。

preg_matchの基本的な使い方

PHPでのpreg_matchの基本的な使い方を紹介します。第1引数に正規表現、第2引数に対象文字列を指定します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

配列の指定

PHPでは、preg_matchの第3引数に配列を指定することで、マッチした文字列を取得できます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

[0]には文字列全体、[1]以降にはマッチした文字列が格納されます。

動作フラグ

PHPでは、preg_matchの第4引数に動作フラグを指定できます。PREG_OFFSET_CAPTUREを指定すると、マッチした文字列のインデックスが格納されます。PREG_UNMATCHED_AS_NULLを指定すると、正規表現にマッチしない部分はNULLとなります。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

大文字小文字を区別しないマッチング

PHPでは、iオプションを指定することで、大文字小文字を区別しないマッチングができます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

ワード境界マッチング

PHPでは、\bで単語を囲むことで、ワード境界マッチングができます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

配列のマッチング

PHPでは、preg_grepを使用すれば配列の正規表現マッチングができます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

preg_match_allによるマッチング

preg_match_allを使用すれば、正規表現に一致する文字列をすべて抽出できます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

複数条件(and)のマッチング

PHPでは、preg_match_allを応用すれば、キーワードがすべて含まれているか否かをチェックできます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

SE
文字列があるかどうかを判定することも可能なんですね。

PM
そうですね。郵便番号や電話番号にもマッチさせることができます。

まとめ

いかがでしたでしょうか。PHPでのpreg_matchで正規表現マッチングを行う方法について説明しました。また、preg_match_allの使い方についても紹介しました。

ぜひご自身でソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags