ホームページ  >  記事  >  バックエンド開発  >  PHP 関数 preg_match_all を使用して正規表現の効果をテストする方法_PHP チュートリアル

PHP 関数 preg_match_all を使用して正規表現の効果をテストする方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:271154ブラウズ

PHP 関数 preg_match_all の具体的な使用法は、PHP 関数 preg_match_all インスタンスの要件: biuuu、biuuu_2、biuuu_3、php self-study network、php self-study などの各 DIV 要素の ID とコンテンツを取り出します。 network 2 と php 独習 Net 3 (一般的に使用される Web サイトの取得方法の一部はこのように一致します)

分析: 文字列は単純な HTML 要素であり、各 DIV 要素は ID とコンテンツに対応しており、独立していることを最初に考えます。 DIV の内容を削除する方法 ID 値と内容 (例: php self-study network)、その他の同様の要素と一致します。 DIV から 2 つの値、つまり 2 つの一致する式を取り出す必要があります。最初の式は ID 値 (biuuu) と一致するために使用され、2 番目の式は ID (php self) の内容と一致するために使用されます。 -study network) 式で一般的に使用される正規表現は括弧を使用します。その場合、前の要素は次の形式になります:

<ol class="dp-xml">
<li class="alt"><span><span class="tag">< </span><span class="tag-name">div</span><span> </span></span></li><li class="alt"><span><span class="attribute">id</span><span>=</span><span class="attribute-value">"(biuuu)"</span><span class="tag">></span></span></li>
<li class="alt"><span><span>(php自学网)</span></span></li>
<li class="alt"><span><span class="tag">< /</span><span class="tag-name">div</span><span class="tag">></span><span> </span></span></li>
<li class="alt"><span><span class="tag">< </span><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"(表达式1)"</span><span class="tag">></span></span></li>
<li class="alt"><span><span>(表达式2)</span></span></li>
<li class="alt"><span><span class="tag">< /</span><span class="tag-name">div</span><span class="tag">></span><span>  </span></span></li>
</ol>

さて、上記の括弧を使用して、一致する必要がある領域を分割します。 次のステップは、一致する方法です。各式の内容は、ID が文字、数字、またはアンダースコアであると推測されます。これは次のように角かっこを使用して簡単に実現できます。

式 1: [a-zA-Z0-9_] + (一致するサイズを示します) 文字、数字、アンダースコアを記述します。

次に、式 2 を一致させる方法です。ID の内容は任意の文字にすることができますが、< または > 文字は一致しないことに注意してください。これら 2 つの文字が一致すると、次の文字が一致します。使用されるすべての DIV が一致するため、これらの 2 つの文字で始まる要素は除外する必要があります。つまり、次のように < または > 文字で始まる要素は一致しません。式 2: [^<>]+ (一致する < および > 文字がないことを示します)

このようにして、PHP 関数 preg_match_all が一致する必要がある部分式が実装されますが、式と一致する必要もあります。メソッドは次のとおりです:

式: / '" (式 1) "'>(式 2)

/

二重引用符 " と / はエスケープ文字を使用してエスケープする必要があることに注意してください。

<ol class="dp-xml">
<li class="alt">
<span><span>'"([a-z0-9_]+)"'</span><span class="tag">></span></span><span><span>/</span></span>
</li>
<li class="alt"><span><span class="tag">< </span><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"([a-z0-9_]+)"</span><span class="tag">></span></span></li>
<li class="alt"><span><span>([^</span><span class="tag"><</span><span class="tag">></span><span>]+)</span></span></li>
<li class="alt"><span><span class="tag">< /</span><span class="tag-name">div</span><span class="tag">></span><span>/   </span></span></li>
</ol>

この方法 ID 値と各 DIV 要素の内容に一致する正規表現を実装し、preg_match_all 関数を使用して次のようにテストします:

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">html</span><span> = </span></span></li>
<li class="alt"><span><span class="attribute-value">'< div id="biuuu"></span></span></li>
<li class="alt"><span><span class="attribute-value">php自学网</span></span></li>
<li class="alt"><span><span class="attribute-value">< /div></span></span></li>
<li class="alt"><span><span class="attribute-value">< div id="biuuu_2"></span></span></li>
<li class="alt"><span><span class="attribute-value">php自学网2</span></span></li>
<li class="alt"><span><span class="attribute-value">< /div></span></span></li>
<li class="alt"><span><span class="attribute-value">< div id="biuuu_3"></span></span></li>
<li class="alt"><span><span class="attribute-value">php自学网3</span></span></li>
<li class="alt"><span><span class="attribute-value">< /div>'</span><span>;   </span></span></li>
<li><span>preg_match_all('/</span></li>
<li><span class="tag">< </span><span class="attribute">divsid</span><span class="tag-name">divsid</span><span>=</span><span class="attribute-value">"([a-z0-9_]+)"</span><span class="tag">></span></li>
<li>
<span>([^</span><span class="tag"><</span><span class="tag">></span><span>]+)</span>
</li>
<li>
<span class="tag">< /</span><span class="tag-name">div</span><span class="tag">></span><span>/'</span><span>,$html,$result);   </span>
</li>
<li class="alt"><span>var_dump($result);  </span></li>
</ol>

PHP関数 preg_match_all の結果の例:

<ol class="dp-xml">
<li class="alt"><span><span>array(3) {   </span></span></li>
<li>
<span>[0]=</span><span class="tag">></span><span> array(3)   </span>
</li>
<li class="alt"><span>{   </span></li>
<li>
<span>[0]=</span><span class="tag">></span><span> string(30) "<br></span><span class="tag"><</span><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"biuuu"</span><span class="tag">></span><span>php自学网</span><span class="tag"></</span><span class="tag-name">div</span><span class="tag">></span><span>"   </span>
</li>
<li class="alt">
<span>[1]=</span><span class="tag">></span><span> string(33) "<br></span><span class="tag"><</span><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"biuuu_2"</span><span class="tag">></span><span>php自学网2</span><span class="tag"></</span><span class="tag-name">div</span><span class="tag">></span><span>"   </span>
</li>
<li>
<span>[2]=</span><span class="tag">></span><span> string(33) "<br></span><span class="tag"><</span><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"biuuu_3"</span><span class="tag">></span><span>php自学网3</span><span class="tag"></</span><span class="tag-name">div</span><span class="tag">></span><span>"   </span>
</li>
<li class="alt"><span>}   </span></li>
<li>
<span>[1]=</span><span class="tag">></span><span> array(3)   </span>
</li>
<li class="alt"><span>{   </span></li>
<li>
<span>[0]=</span><span class="tag">></span><span> string(5) "biuuu"   </span>
</li>
<li class="alt">
<span>[1]=</span><span class="tag">></span><span> string(7) "biuuu_2"   </span>
</li>
<li>
<span>[2]=</span><span class="tag">></span><span> string(7) "biuuu_3"   </span>
</li>
<li class="alt"><span>}   </span></li>
<li>
<span>[2]=</span><span class="tag">></span><span> array(3)   </span>
</li>
<li class="alt"><span>{   </span></li>
<li>
<span>[0]=</span><span class="tag">></span><span> string(8) "php自学网"   </span>
</li>
<li class="alt">
<span>[1]=</span><span class="tag">></span><span> string(9) "php自学网2"   </span>
</li>
<li>
<span>[2]=</span><span class="tag">></span><span> string(9) "php自学网3"   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span>}  </span></li>
</ol>

3 つの式があり、それぞれが個別に表示されます。式によって一致した値は配列の形式で保存されるため、各 DIV 要素の ID と内容を確認できます。正規表現を使用する上で最も重要なことは、何が必要かを知り、それをニーズに合わせて、出力デバッグに非常に便利な PHP 関数 preg_match_all を適切に使用することです。


http://www.bkjia.com/PHPjc/446287.html

www.bkjia.com

http://www.bkjia.com/PHPjc/446287.html技術記事 PHP 関数 preg_match_all の具体的な使用法は、PHP 関数 preg_match_all インスタンスでリクエストできます。biuuu、biuuu_2、biuuu_3、p... などの各 DIV 要素の ID とコンテンツを取り出します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP_PHPチュートリアルにおける中国語文字化けの原因分析と解決方法次の記事:PHP_PHPチュートリアルにおける中国語文字化けの原因分析と解決方法

関連記事

続きを見る