正規表現について質問する

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

Web ページのアドレス内のすべての画像アドレスと一致させたい場合は、次のように正規表現を記述します:

$reg="/<img\s*.*src\s*=\s*[\"|\']?\s*([^>\"\']*)/i";
ログイン後にコピー


画像ファイルのアドレスが次のようなのはなぜですか:
<img src="../Images/Album Cover/album_012.jpg">
ログイン後にコピー

のみ一致します:
<img src="../Images/Album
ログイン後にコピー

一致すると終了します。空間に到達しますか?
([^>"']*) この条件にはスペースを含めることはできません?


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

規則性は正しいです。分析のためにコードを投稿することをお勧めします。

$reg="/<img\s*.*src\s*=\s*[\"|\']?\s*([^>\"\']*)/i";$s = '<img src="../Images/Album Cover/album_012.jpg">';preg_match_all($reg, $s, $m);print_r($m);
ログイン後にコピー
Array
(
[0] => 配列
(
[0] => <img src="../Images/Album Cover/album_012.jpg
)

] => ../画像/アルバムカバー/アルバム_012.jpg
、最も明白なのは


rreeearray

[0] =&gt; array


[0] =&gt;&lt; img src = "../画像/アルバムカバー/al bum_012 .jpg

)

[1] => )

)

ファイルにコピーして実行したところ、結果は空の配列でした。 / album_012.jpg
)

)

)

とても奇妙です。 。 。私はChromeを使用しており、出力は次のとおりです:

$url=$_POST['url'];				$rs=parse_url($url);				$main_url=$rs['host'];				$baseurl=substr($url,0,strrpos($url, '/')+1);				$message=file_get_contents($url);				$reg="/<img\s*.*src\s*=\s*[\"|\']?\s*([^>\"\']*)/i";				preg_match_all($reg, $message, $matches);				for($i=0;$i
ログイン後にコピー

配列は完全には出力されていません。 。次の括弧は消えています


「Web ページのソース コードの表示」を最後まで見てください

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