ホームページ  >  記事  >  バックエンド開発  >  PHP正規表現の使用

PHP正規表現の使用

WBOY
WBOYオリジナル
2016-06-20 12:32:22913ブラウズ

正規表現は、PHP の非常に重要な知識ポイントであり、通常、文字列を検索して置換し、ユーザーが入力した情報形式が仕様 (電子メール形式、電話形式など) に準拠しているかどうかを確認するために使用されます。 。コレクターなどのソフトウェアでは、正規表現も使用する必要があります。主に、PHP のいくつかの一般的な通常関数 preg_match()、preg_match_all()、preg_grep()、preg_split() を紹介します。

1.preg_match()

この関数は通常、フォームの検証に使用されます。指定された正規表現パターンに従って文字列を 1 回検索して一致させることができます。この関数には 2 つの必須パラメーターがあり、最初のパラメーターには正規表現構文に従ってユーザーが記述したパターンを指定する必要があり、2 番目のパラメーターには 1 文字が必要です。弦。 3 番目のオプションの配列パラメータ match が指定されている場合、最初のパラメータに保存されたサブパターンのさまざまな部分の一致結果を保存できます。

2.preg_match_all()

この関数は preg_match() 関数と似ていますが、preg_match() 関数は最初の一致後に検索を停止します。関数 preg_match_all() は、指定された文字列の末尾まで検索し、一致するすべての結果を取得します。

この関数は、考えられるすべての一致結果を 3 番目のパラメーターの配列に入れ、パターン全体の一致数を返します。エラーが発生した場合は、False を返します。 4 番目のパラメーターが使用される場合、一致が発生するたびに、指定された順序で 3 番目のパラメーターの配列に保存されます。 4 番目のパラメーターには 2 つの事前定義値があります。

a.PREG_PATTERN_ORDER: これは preg_match_all() 関数のデフォルト値であり、$matches[0] がすべてのパターン一致の配列になるように結果が並べ替えられます。 $matches[ 1] は、最初の括弧内のサブパターンと一致する文字列の配列です。以下同様です。

b.PREG_SET_ORDER: $matches[0] が最初の一致セットの配列、$matches[1] が 2 番目の一致セットの配列、というように結果を並べ替えます。

3.preg_grep()

この関数は、配列内の要素と一致し、正規の要素と一致する配列単位を返すという点で、前の 2 つの関数とは異なります。表現。

この関数は、指定された最初のパラメーター パターンに一致する 2 番目のパラメーター配列内のセルを含む配列を返し、出力配列の各要素と漠然と一致します。

4.preg_replace()

この関数は正規表現による検索と置換を行うことができ、最も強力な文字列置換処理関数です。

関数には 3 つのパラメーターがあり、最初のパラメーターは項目と一致し、2 番目のパラメーターは置換されるパラメーターです。 3 番目によく検索されるパラメータ。 4 番目のオプションのパラメーターlimit が指定されている場合、limit が存在するか、その値が -1 の場合は、一致するすべてが置き換えられます。

5.str_replace()

この関数はPHPで改良された文字列処理関数であり、文字列の置換も実現できます。正規表現置換関数ほど強力ではありませんが、一部の単純な文字列の置換は preg_replace() 関数より効率的です。

この関数には 1 つの必須パラメーターとオプションのパラメーターがあります。最初のパラメーターはターゲット オブジェクト、2 番目のパラメーターは置換オブジェクト、3 番目のパラメーターは処理される文字列です。 3 番目の引数の は、最初の引数で指定されたターゲット オブジェクトを大文字と小文字を区別して検索し、見つかったインスタンスは 2 番目の引数で指定された置換オブジェクトで置き換えられます。ターゲット オブジェクトが 3 番目のパラメータに見つからない場合、処理された文字列は変更されません。 4 番目はオプションのパラメーターである変数参照で、置換の数を保存するために変数名で渡す必要があります。

str_replace() の最初の 2 つのパラメータを使用すると、文字列だけでなく配列も使用できます。

6.preg_split()

この関数は Perl 互換の正規表現構文を使用し、正規表現メソッドに従って文字列を分割できます。

この関数は文字列配列を返します。配列内の要素には、2 番目のパラメーターで渡された文字列、最初のパラメーターの正規表現が、一致する境界によって分割された部分文字列として含まれます。 3 番目の文字列制限が指定されている場合は、最大でも制限された部分文字列が返されます。最後の要素には、分割後の残りの部分がすべて含まれます。制限が -1 の場合、制限がないことを意味します。 4 番目のパラメータはオプションのパラメータです。

>> PREG_SPLIT_NO_EMPTY: このフラグが設定されている場合、preg_split() は空でないコンポーネントのみを返します。

>> PREG_SPLIT_DELIM_CAPTURE:が設定されている場合、区切り文字パターン内の括弧式もキャプチャされて返されます。

>> PREG_SPLIT_OFFSET_CAPTURE: このフラグが設定されている場合、一致する結果の各出現も関連付けられた文字列オフセットを返します。これにより、返された配列の値が変更され、各要素も配列になることに注意してください。最初の項目は一致した文字列で、2 番目の項目は元の文字列へのオフセットです。

関数explode()

特定の文字列のみを使用して分割する場合は、explode() 関数を使用することをお勧めします。正規表現エンジンなので速度は最速です。

この関数には 3 つのパラメーターがあります。最初のパラメーターは分割される文字列です。3 番目のオプションのパラメーター制限が指定されている場合、文字列を最大で分割する必要があります。部分文字列の数。この関数は、分割された部分文字列の配列を返します。

関数 implode()

文字列の分割に対応するのは、配列内のすべての要素を 1 つの文字列に結合する implode() 関数です。関数 join() は、この関数のエイリアスです。

この関数には 2 つのパラメーターがあり、最初のパラメーターはリンク文字または文字列を生成し、2 番目のパラメーターはリンクされる配列を指定します。

添付: 正規表現とは何ですか?

タグ: PHP プログラミング

ソース: PHP 正規表現の使用法

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。