ホームページ >バックエンド開発 >PHPチュートリアル >正規表現に一致が含まれている必要がある方法を教えてください

正規表現に一致が含まれている必要がある方法を教えてください

WBOY
WBOYオリジナル
2016-06-23 14:27:16795ブラウズ

通常:
c91d53d6c88b75d6d73164699712d6acfc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419(.*)0d36329ec37a2cc24d42c7229b69747a 16b28748ea4df4d9c2150843fecfba685db79b134e9f6b82c0b36e0489ee08ed

コンテンツ:
25edfb22a4f469ecb59f1190150159c6strbed06894275b65c1ab86501b08a632eb25edfb22a4f469ecb59f1190150159c60c8c1d122134d9e0d2b91bfbdbcbed15タイトル 15db79b134e9f6b82c0b36e0489ee08ed8e22c81817d224bf490a20f8d20d8ac9327bcfd6466defe64b8dc26b19968d81fc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419タイトル 20d36329ec37a2cc24d42c7229b69747a16b28748ea4df4d9c2150843fecfba685db79b134e9f6b82c0b36e0489ee08ed

ターゲット: (e75d72b33bc2356d7a6d9d4541cda3eca4b561c25d9afb9ac8dc4d70affff419)
327bcfd6466defe64b8dc26b19968d81fc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419タイトル 20d36329ec37a2cc24d42c7229b69747a ;5db79b134e9f6b82c0b36e0489ee08ed


現在のエラー結果: (段落全体に一致)
0c8c1d122134d9e0d2b91bfbdbcbed15タイトル 15db79b134e9f6b82c0b36e0489ee08ed3b7fe14aed09a42954f2a4e7667e3674fc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419タイトル 20d36329ec37a2cc24d42c7229b69747a16b28748ea4df4d9c2150843fecfba685db79b134e9f6b82c0b36e0489ee08ed


ディスカッションに返信 (計画を解決)

プラス貪欲を禁じます

これはどういう意味ですか?

$str = '<li>str</li><li><a href="/x.html">标题一</a></li><a href="/BAMC"><div class="plst"><b>标题二</b></div></a>';preg_match_all("/<a.*?><div class=\"plst\"><b>(.*)<\/b><\/div><\/a>/is",$str,$match);echo "<pre class="brush:php;toolbar:false">";print_r($match);

正しい結果:
327bcfd6466defe64b8dc26b19968d81e97feeafc4d155d2e9349dc0dd95938ba4b561c25d9afb9ac8dc4d70affff419タイトル 20d36329ec37a2cc24d42c7229b69747a16b28748ea4df4d9c2150843fecfba685db79b134e9f6b82c0b36e0489ee08ed

現在のエラー結果:
0c8c1d122134d9e0d2b91bfbdbcbed15タイトル 14a11e5928b3688cf38c9163b657eb5ac548cefb384a95312edb7e8fb1f4ecc29327bcfd6466defe64b8dc26b19968d81fc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419タイトル 20d36329ec37a2cc24d42c7229b69747a16b28748ea4df4d9c2150843fecfba685db79b134e9f6b82c0b36e0489ee08ed

あなたの方法を試しましたそして、それは依然として次の結果と一致しました。

すごい

すごい

くそ csdn

preg_match_all("/55784847ccfa800f7f23a4af7651bca8fc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419(.*)0d36329ec37a2cc24d42c7229b69747a

U の追加は貪欲を禁止します
結果が一致したらすぐに終了するため、貪欲の問題ではないようです。

U を追加しました

$str = '<li>str</li><li><a href="/x.html">标题一</a></li><a href="/BAMC"><div class="plst"><b>标题二</b></div></a>';preg_match_all("/<a.*?><div class=\"plst\"><b>(.*)<\/b><\/div><\/a>/is",$str,$match);echo "<pre class="brush:php;toolbar:false">";print_r($match);


結果:
preg_match_all("/<a.*?><div class=\"plst\"><b>(.*)<\/b><\/div><\/a>/isU",$str,$match);//加上U,禁止贪婪模式



preg_match_all("/<a.*?><div class=\"plst\"><b>(.*)<\/b><\/div><\/a>/isU",$str,$match);//加上U,禁止贪婪模式

クソ csdn

preg_match_all("/55784847ccfa800f7f23a4af7651bca8fc17a6752d85043afe4e83b709ba2f53a4b561c25d9afb9ac8dc4d70affff419( . *) 0d36329ec37a2cc24d42c7229b69747a16b28748ea4df4d9c2150843fecfba685db79b134e9f6b82c0b36e0489ee08ed/is U",$str,$match);




結果:

$str = '<li>str</li><li><a href="/x.html">标题一</a></li><a href="/BAMC"><div class="plst"><b>标题二</b></div></a>';preg_match_all("/<a.*?><div class=\"plst\"><b>(.*)<\/b><\/div><\/a>/U",$str,$match);echo "<pre class="brush:php;toolbar:false">";print_r($match);


前のものはまだ冗長です:
< ;a href= "/x.html">タイトル 15db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb

注意事項
一部の境界付きコンテンツと一致させるには、正規表現は border+excluded border+border の形式で記述する必要があり、使用は避けてください。勝手にドット
特にhtmlなどのマークアップ言語は、マークアップ言語の特性上、ドットでカバーできない途中に改行を入れるのが合法なので、気軽にドットを使ってしまいます。ソース文字列がきちんとしている必要があることは当然のことです。 極端な例:

1ae3f565c03bb1967fcda16acd7619d3
ABC
5db79b134e9f6b82c0b36e0489ee08ed この HTML 文字列は完全に合法であり、 Web ページの表示にはまったく影響しませんが、定期的に発生します 考えてみてください

"[^"]*"
549a3fd9a3c62568d8b32cd8627105c3]+>
da5fcd22ac2a97a60bd259eb7398bd5b[^< ;]*5db79b134e9f6b82c0b36e0489ee08ed


rree rree

もう一度単純化して
<pre class="brush:php;toolbar:false">Array(    [0] => Array        (            [0] => <a href="/x.html">标题一</a></li><a href="/BAMC"><div class="plst"><b>标题二</b></div></a>        )    [1] => Array        (            [0] => 标题二        ))

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