PHPの正規表現関数

小云云
リリース: 2023-03-22 10:28:01
オリジナル
2849 人が閲覧しました

PHP には 2 セットの正規表現関数ライブラリがあります。 1 つのセットは、従来の NFA に基づいた PCRE (Perl 互換正規表現) ライブラリによって提供されます。 PCRE ライブラリは、Perl と同じ構文ルールを使用し、接頭辞「preg_」が付いた名前の関数を使用して正規表現パターン マッチングを実装します。もう 1 つのセットは、POSIX NFA に基づいた POSIX (ポータブル オペレーション システム インターフェイス) 拡張ライブラリによって提供されます。 POSIX 拡張正規表現は POSIX 1003.2 で定義されており、通常は「ereg_」接頭辞が付いた名前の関数を使用します。

2 つの関数ライブラリの機能は似ていますが、実行効率が若干異なります。一般に、同じ機能を実現するには、PCRE ライブラリを使用した方が効率がわずかに優れています。その使用法については以下で詳しく説明します。

正規表現マッチング

1. preg_match()

関数プロトタイプ: int preg_match (string pattern, stringpattern, stringcontent [, array $matches])

preg_match () 関数は、pattern で指定された正規表現のコンテンツ文字列を検索します。一致が提供された場合は、一致した結果がそこに配置されます。一致する場合は、一致した結果をそれに入れます。 matches[0] にはパターン全体に一致するテキストが含まれ、$matches[1] には括弧で囲まれたパターン要素の最初にキャプチャされた一致が含まれます。この関数は 1 つの一致のみを実行し、最終的には 0 または 1 の一致結果の数を返します。

2. ereg() と eregi()

ereg() は、POSIX 拡張ライブラリの正規表現マッチング関数です。 eregi() は、ereg() 関数の大文字と小文字を無視するバージョンです。どちらも preg_match と同様の関数を持っていますが、この関数は一致が成功したかどうかを示すブール値を返します。 POSIX 拡張ライブラリ関数の最初のパラメータは正規表現文字列を受け入れる、つまり区切り文字は必要ないことに注意してください。

3. preg_grep()

関数プロトタイプ: array preg_grep (string pattern,arraypattern,arrayinput)

preg_grep() 関数は、入力配列と、指定されたパターン パターン ユニットに一致する指定された入力配列を含む配列を返します。 Preg_grep() は、入力配列 $input 内の各要素の照合のみを実行します。リスト 6.3 の例は、preg_grep() 関数の使用法を簡単に示しています。

グローバル正規表現マッチングを実行する

1. preg_match_all()

preg_match()関数に似ています。 3 番目のパラメーターを使用すると、一致する可能性のあるすべてのものが検索されます。この関数は、パターン全体が一致した回数 (おそらく 0) を返し、エラーが発生した場合は False を返します。

2.複数行のマッチング

POSIXでは通常のテーブル関数だけで複雑なマッチング演算を行うのは困難です。たとえば、ファイル全体 (特に複数行のテキスト) に対して一致検索を実行します。 ereg() を使用してこれを行う 1 つの方法は、別々の行で行うことです。

正規表現の置換

1. ereg_replace() と eregi_replace()

関数プロトタイプ: string ereg_replace (string pattern, stringpattern, stringreplacement, string $string)

String eregi_replace (string pattern, stringpattern, stringreplacement, string $string)

) in string パターンを検索検索パターン文字列 string 内の文字列パターンを検索し、一致した結果を置換に置き換えます。交換時。パターンにパターン ユニット (またはサブパターン) が含まれている場合、「1」のような形の置換中の位置、または「1」または「1」のような形の「置換中」の位置は、これらのサブパターンに一致するコンテンツに置き換えられます。パターンを順番に。

正規表現の分割

1. Split() と Spliti()

関数プロトタイプ: array split (string pattern, stringpattern, stringstring [, int $limit])

この関数は文字列配列を返します。各単位は正規表現による文字列です。正規表現による文字列です。表現パターン境界で分割された部分文字列として使用されます。制限が設定されている場合、返される配列には最大でも制限値が含まれ、返される配列には最大でも制限単位が含まれます。最後のユニットには、$string の残りの部分がすべて含まれます。 spliti は、split のサイズを無視したバージョンです。

2. preg_split()

この関数はsplit関数と同じ機能です。 '

関連する推奨事項:

PHP でよく使用される正規表現関数の詳細な説明

Linux システムのユーザー管理と grep 正規表現の詳細な説明

PHP 正規表現の共有

以上がPHPの正規表現関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート