エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


PHPで正規表現の検証には preg_match_allが便利

      2014/06/26

preg_match_allで正規表現のチェック

 
PHPで正規表現が正しいか、間違っているかの検証には preg_match_allが便利
 
Swiffyで Base64でエンコードされた画像を置換する際に、その画像の部分を正規表現で表現する必要があったわけですが、正規表現には不慣れなこともあり、正規表現の記述があっているのか、間違っているのかの確認が非常に悩ましいところでした。
 
 
ですが、あれこれと試していたところ「preg_match_all」という便利な関数があることを知りました。
 
「preg_match_all」は「繰り返し正規表現検索を行う」関数です。
 
 preg_match_all ( $pattern, $subject, $matches );
 
$subject(文字列)の中にある $pattern(検索する文字列)を検索し、$matchesの中にその結果を配列として編集してくれます。
 
これを、下記のように配列を見やすく表示してくれる「print_r」(「var_dump」でもOK)と組み合わせて使う事で、記述している正規表現にヒットしているものが何かがすぐに分かるのです。
 
 preg_match_all ( $pattern, $subject, $matches );
 print_r ( $matches );
 
正規表現をあれこれと書き直ししながら、何がヒットしているのか、どこの記述が違うのかを簡単に見る事が出来ますので正規表現を書くのに非常に便利でした。
 
正規表現は、とっつきにくい印象がありますが、具体的に見ながら記述することが出来れば少しはとっつきにくさも解消されるんじゃないでしょうかね。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

PHPで特定の日間の日付を for、strtotimeで表示する

ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。

Basic認証の.htaccess、.htpasswd生成ツールと解説

Basic認証を設定する際に必要となる.htaccess、.htpasswdファイルを生成するツール。ID、PASS、.htpasswdへのパスを入力することで編集する情報を生成します。

CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説
CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説

CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。

Smartyのテンプレート内の処理で計算、加工をする方法

Smartyのテンプレート上で変数を計算する、加工する方法を解説します。

ECCUBEの管理画面のSSL設定をインストール後に変更する方法

ECCUBEをインストールした後から管理画面のSSL設定を変更する方法を解説します。config.phpファイルのHTTPS_URLとADMIN_FORCE_SSLの値を変更すればOK。

ECCUBEの新規追加ページがInternal Server Error・Not Foundに

ECCUBEで新規追加したページがInternal Server Errorに!原因はファイルのパーミッションの場合が多くその対処方法とプログラムの修正ポイントを解説。Not Foundも解説。

ファイル変更だけ!ECCUBEの本番から開発環境をコピーする手順を解説

ECCUBEを本番から開発環境をコピーする際の手順を解説。PGMメンテに必要な開発環境を構築する手順を解説。ECCUBEの仕組みは簡単なので作業は5分ほど。

ECCUBEの問い合わせフォームに任意の値を引数として渡す方法

ECCUBEのお問い合わせフォームに値を固有の情報を送りそれに基づいて処理をする方法を解説。ボタンの設置、受け取り側のテンプレート、プログラムのサンプルソースを提供。

ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集

ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。

路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索
路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索

路線・駅検索の仕組みの構築は大変。登録する側も最寄り駅が多い場合は大変。なので簡易に実装するため緯度経度に基づき直線距離を計算する処理を考案して実装して、その処理を解説。