正規表現は、テキストデータ内の特定の文字列を照合、検索、および置換するために使用できる特定のパターンです。これは、あらゆるプログラミング言語の強力な機能です。これは主に、電子メールの検証、電話フォーマットの確認、ログインフォームのユーザー名とパスワードのフィールドの検証など、さまざまなタイプのフォーム検証を実行するために使用されます。テキストの特定のコンテンツは、正規表現を使用して検索および置換できます。パターン。正規表現またはRegExpとも呼ばれます。正規表現パターンを定義するために、さまざまなタイプのシンボルが使用されます。
PHPには、正規表現用の多くの組み込み関数があります。 preg_match()関数はその1つです。この関数は、文字列データの特定のパターンを照合するために使用されます。このチュートリアルでは、さまざまなタスクを実行するためにPHPでpreg_match()関数を使用する方法について説明します。
構文:
IntまたはNS preg_match ((ストリング$ pattern、ストリング$ subject [、 配列 &$ matches = ヌル [、int$ flags = 0 [、int$ offset = 0]]])。この関数は5つの引数を取ることができます。最初の議論、 $ pattern は必須であり、マッチングのパターンを定義します。 2番目の引数、 $ subject は必須であり、パターンが適用される文字列データが含まれています。 3番目の引数、 $ matches 、はオプションであり、一致に基づいて配列を返します。 4番目の引数、 $ flags 、はオプションであり、一致に基づいてさまざまなタイプのフラグ値が含まれます。 5番目の引数、 $ offset 、はオプションであり、検索の開始位置を定義するために使用できます。
例1:大文字と小文字を区別する方法と大文字と小文字を区別しない方法でパターンを一致させる
次の例は、大文字と小文字を区別する方法と大文字と小文字を区別しない方法で文字列を照合するためのpreg_match()関数の使用を示しています。次のスクリプトを使用してPHPファイルを作成します。
ここでは、3つのpreg_match()関数に適用するために3つのパターンが使用されています。最初のパターン、 '/お気に入り/'、 大文字と小文字を区別して文字列を照合するために使用されます。 2番目のパターン、 '/お気に入り/' は、大文字と小文字を区別して文字列を照合するために使用されます。 3番目のパターン、 「like / i」 は、大文字と小文字を区別しない方法で文字列を照合するために使用されます。 search_pattern() 関数は、preg_match()関数を使用して照合するようにスクリプトで定義されており、この関数の戻り値に基づいてメッセージを出力します。
//テキストを定義します
$ text = '私はPHPが好きです。 JavaScriptも好きです。」;
// 3種類のパターンを定義する
$ pattern1 = '/お気に入り/';
$ pattern2 = '/お気に入り/';
$ pattern3 = '/ Like / i';
//テキスト内のパターンを検索するための関数を定義します
関数search_pattern(($ pattern、 $ string)。
{{
もしも(( preg_match (($ pattern、 $ string)。)。
捨てた '検索結果: パターンに一致するものが見つかりました-$ pattern
';
そうしないと
捨てた '検索結果: パターンに一致するものが見つかりません-$ pattern
';
}
//元のテキストを印刷します
捨てた '元のテキストは次のとおりです。 $ text
';
// 3つのパターンに対して関数を3回呼び出す
search_pattern(($ pattern1、 $ text)。;
search_pattern(($ pattern2、 $ text)。;
search_pattern(($ pattern3、 $ text)。;
?>
出力 :
サーバーからスクリプトを実行すると、次の出力が表示されます。最初の行は、パターンが検索されたテキストを示しています。 2行目は、最初のパターンの出力を示しています。 3行目は、2番目のパターンの出力を示しています。 4行目は、3番目のパターンの出力を示しています。
例2:URLを検証する
次の例は、preg_match()関数を使用してURLアドレスを検証する方法を示しています。次のスクリプトを使用してPHPファイルを作成します。
テスト用に、変数$ urlにURL値が割り当てられます。 ‘@ ^(?:https://)?([^ /] +)@ i’文字列は、URLアドレスが有効かどうかを確認するためにpreg_match()関数のパターンとして使用されます。有効な場合はホスト名とドメイン名が出力され、そうでない場合はエラーメッセージが出力されます。
// URLを定義します
$ url = 「https://www.linuxhint.com」;
// URLを検証するためのパターンを定義します
$ pattern ='@ ^(?:https://)?([^ /] +)@ i';
// URLが有効かどうかを確認します
もしも(( preg_match (($ pattern、 $ url、 $ matches1)。)。
{{
//成功メッセージを出力します
捨てた 'URLは有効です。
';
//一致値を含む配列を出力します
捨てた '配列の値は次のとおりです:';
print_r (($ matches1)。;
//ホスト値を取得して出力します
$ host = $ matches1[1];
捨てた '
ホスト名は次のとおりです。$ host';
//ホスト値からドメイン名を検索します
preg_match (('/[^.-lex.europa.eu+.[^.íritu+$/'、 $ host、 $ matches2)。;
捨てた '
ドメイン名は次のとおりです。{$ matches2 [0]}';
}
そうしないと
{{
//エラーメッセージを出力します
捨てた '無効なURL。';
}
?>
出力 :
サーバーからスクリプトを実行すると、次の出力が表示されます。スクリプトで指定されたURLは有効です。したがって、出力には、$ matchesの値、URLのホスト名、およびURLのドメイン名が表示されます。
例3:フラグとオフセット値を使用した検索パターン
次の例は、preg_match()関数でのフラグとオフセット値の使用法を示しています。次のスクリプトを使用してPHPファイルを作成します。
スクリプトでは、3つのタイプのマッチングのために3つのパターンが使用されます。最初のpreg_match()関数では、「/(bangla)(desh)/」がパターンとして使用され、フラグ値PREG_OFFSET_CAPTUREが使用されます。の値 $ matches 変数は、最初のpreg_match()関数の出力に基づいて出力されます。 2番目のpreg_match()関数では、「/(bangla)(glad)*(desh)/ i」がパターンとして使用され、フラグ値PREG_UNMATCHED_AS_NULLが使用されます。パターンのいずれかの部分が一致しない場合、NULL値が配列に格納されます。の値 $ matches 変数は、2番目のpreg_match()関数の出力に基づいて出力されます。 3番目のpreg_match()関数では、「/ glad /」がパターンとして使用され、フラグ値、PREG_OFFSET_CAPTUREが使用され、3がオフセット値として使用されます。の値 $ matches 変数は、3番目のpreg_match()関数の出力に基づいて出力されます。
//テキスト値を定義します
$ text = 「バングラデシュ」;
// 3種類のパターンを定義する
$ pattern1 = '/(バングラ)(デシュ)/ i';
$ pattern2 = '/(バングラ)(グラッド)*(デッシュ)/ i';
$ pattern3 = '/嬉しい/';
// PREG_OFFSET_CAPTUREフラグを使用する
preg_match (($ pattern1、 $ text、 $ matches、PREG_OFFSET_CAPTURE)。;
捨てた '
';
print_r ($matches);
echo '
';
// PREG_UNMATCHED_AS_NULLフラグを使用する
preg_match (($ pattern2、 $ text、 $ matches、PREG_UNMATCHED_AS_NULL)。;
捨てた '
';
print_r ($matches);
echo '
';
// PREG_OFFSET_CAPTUREフラグとオフセット値を使用
preg_match (($ pattern3、 $ text、 $ matches、PREG_OFFSET_CAPTURE、 3)。;
捨てた '
';
print_r ($matches);
echo '';
?>
出力 :
サーバーからスクリプトを実行すると、次の出力が表示されます。
結論
preg_match()関数の使用法は、このチュートリアルで複数の例を使用して説明されています。この関数のさまざまな引数の使用法もここに示されています。読者は、このチュートリアルを読んだ後、スクリプトでこの関数を適切に使用できるようになります。