サイト検索

PHP:正規表現、関数pregすべてにマッチ

PHP、それは現代の言語になっているはずですプログラミングでは、正規表現を使用するための一連の関数を開発者に提供します。複雑な条件で他の行の文字列の出現を検索できます。

すべて一致するpreg

HTML、CSS、XMLおよびその他の形式化されたファイル - 関数preg match allを適用するための古典的なタスク。それほど効果的ではありませんが、住所、姓、電話番号、電子メール、その他の情報が非正式なテキストで検索されます。

関数形式

PHPは2つの検索機能を提供します: pregの一致とpregのすべての一致します。最初の行は、行のパターンの最初の出現を探し、2番目の出現はすべて出現を探します。場合によっては、パターンとの一致という用語が使用されます。最初のケースでは、関数の結果は "文字列がパターンと同じです"、2番目のケースでは "行がパターンに一致します"。正式には、「偶然」という言葉は本質をより正確に反映していますが、操作の自然なコンテキストは通常​​、情報を「検索」しています。実際には、どちらか一方が要求されます。以下は、関数の書式です。

PHP pregすべて一致

関数の結果は、数、一致の数です。見つかったすべての一致が配列に書き込まれます - マッチします。関数pregが一致する場合は、配列の並べ替え順序をすべて指定できます。

  • PREG_PATTERN_ORDER;
  • PREG_SET_ORDER。

最初のオプションでソートすると、検索結果は正規表現の番号(デフォルト値)でグループ化されます。 2番目のケースでは、結果は行内の位置に応じてグループ化されます。

シンボルはテンプレート要素です

テンプレートはシンボルで動作することを覚えておくことが重要です。 プログラミングは、そのようなデータ型が「シンボル」であることを忘れていました。現代の言語は "文字列"という概念の下にはありませんが、テンプレートに関しては理解しなければなりません。ここでは記号が操作されています。

テンプレートの構成は、まず第一に、所望の記号列の表示である。これが明確に理解されていれば、テンプレートにエラーはありません。いずれにせよ、それははるかに少ないでしょう。

  • aはテンプレートの特定の要素、つまりシンボルです。
  • a-zはテンプレート要素で、1文字でもaからzまでの値しかない - 小文字のラテンアルファベット全体。
  • 0-9は1桁であり、1〜3以外は1、2または3である。

テンプレートのレジスタは重要です。テンプレートの最初と最後の文字は非常に重要です。テンプレートの開始方法と終了方法を指定できます。

関数テンプレート

PHP preg match allは、正規表現の標準構文を使用します。角カッコは、次の文字のいずれかを示します。

  • [abc]文字a、b、cのみ。
  • [^ ABC]すべての文字A、B、Cを除く
  • \ wと\ Wはテキストまたは非テキスト文字です。
  • \ sと\ Sは、空白文字または空白文字ではありません。
  • \ dと\ Dは数字か数字ではありません。

PHP pregすべて一致

繰り返しシンボルは中括弧 - {n、m}で示され、前の文字を参照します。

  • nは繰り返し以上を意味します。
  • m - 繰返し "それ以上"。

この構文では、テンプレートを作成するための多くのオプションが用意されていますが、基本的なもの、つまり複雑な要素や組み合わせが欠落している簡単な自己記述から始めるのが最善です。

簡単に言えば、実際の文字をリストし、必要な数量を指定し、記号 "^"が先頭に対応し、 "$"が行の最後であることを考慮することによって必要とされる場合、素朴なテンプレートを作成することができます。認定されたスペシャリストから実際のデバッグされた正規表現を分析すると、すべてのプレグラムの複雑なアプリケーションを作成するための堅実な知識を得ることができます。 PHPアーセナルはこれらの2つの機能に限定されませんが、最も頻繁に使用されます。

簡単な練習

整数のテンプレート:

  • "/ [0-9] * /"

整数パターンでも、正面に記号( "+"、 " - ")があり、前後に余分なスペースがあることがあります:

  • / ^ [\ s | \ + | \ - ] {0,1} [0-9] * /

同様に、

  • /^[\s|\|||]]0,1}[0-9]*(\.)[0-9]*/ - ピリオドを含む数字。
  • / [0-9a-z_-] + @ [0-9a-z _ ^ \。] + \。[a-z] [2,3] /-電子メールを認識するためのバリアント。

インターネット上での例文、サイトのページコードや他のソースの分析を使用して、独自のテンプレートライブラリを作成することができます。

すべての例に一致するpreg

情報を見つけるためのオプションは、設定します。特に、上記の2つの構成は、異なってモデル化することができる。多くの場合、好みの一致をより迅速かつ正確に提供するテンプレートが優先されます。他の言語のPHP preg match関数と同様の関数を使用するには、テンプレートの正確さを実践、注意、予備検証する必要があります。

</ p>
  • 評価: