ホームページ > バックエンド開発 > PHPチュートリアル > この正規表現が一致しない理由を教えてください。

この正規表現が一致しない理由を教えてください。

WBOY
リリース: 2016-06-23 14:06:47
オリジナル
1034 人が閲覧しました

$newstext='<li style="margin: 0px 20px 0px 0px; padding: 0px; list-style-type: none; float: left; text-align: center; line-height: 20px; width: 120px; height: 114px; overflow: hidden; "><a class="gaga" href="http://www.clvyou.com/jingdiafasdfsadfadsadsn/10063.html" title="长江三峡豪华游轮维多利亚凯珍号" target="_blank" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 0, 0); "><img src="http://www.clvyou.com/d/file/titlepic/jingdia10063.jpg" alt="长江三峡豪华游轮维多利亚凯珍号" style="margin: 0px; padding: 0px; border: none; width: 118px; height: 86px; " /><br style="margin: 0px; padding: 0px; " />长江三峡豪华游轮维多利亚凯珍号</a></li>';//$newstext='fasdadsafsasdasf<a title="gga" href="http://www.baidu.com">百度</a>fadsfadsfadsf<a href=\'http://www.baidu.com\' target="_blank">百度</a>fadsfadsfads';可以匹配这样的,但是上面的就匹配不到preg_match_all('/<a.+href=["|\'](.*)["|\'].*>(.*)<\/a>/iU',$newstext,$result);print_r($result);exit;
ログイン後にコピー


ディスカッションへの返信 (解決策)

問題が見つかりました。a タグ内に改行があります。 .* を [sS]* に変更する必要があります。

正解は次のとおりです。
preg_match_all('/([sS]*)/iU',$newstext,$result );

配列を取得

(
] [ 0]=> Kaizhenhao" target="_blank" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 0, 0 ); ">長江三峡豪華客船ビクトリア開鎮
長江三峡豪華客船ビクトリア カイジェン
. [0] => http://www.clvyou.com/jingdiafasdfsadfadsadsn/10063.html
)
[2] => 配列
(
[0] = > 長江三峡豪華客船ビクトリア開鎮

リンク a に改行があると機能しません

/(.*)< /a>/i sU
以上です

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