1

次のような文字列があります。

<a href="http://www.google.com"><img class="size-medium wp-image-427  alignnone" alt="" src="http://localhost/lucite/wp-content/uploads/Koala-300x225.jpg" width="300" height="225" /></a><a href="http://www.berg.nl"><img class="size-medium wp-image-426  alignnone" alt="" src="http://localhost/lucite/wp-content/uploads/Desert-300x225.jpg" width="300" height="225" /></a>

ご覧のとおり、リンク付きの 2 つの画像で構成されています。で始まる両方の部分文字列を選択したい

<a 

で終わる

/a>

そのため、画像が含まれています。

私の最初の正規表現はこれでした:

<a.+<img.+\/a>

これにより部分文字列が取得されますが、改行がないと、2 つではなく 1 つの一致しか表示されません。

単純な画像の場合、改行がなくても両方の画像を見つける、より堅牢な正規表現を見つけました。

<[^<]+? \/>

この正規表現をリンクタグも含めるように適応させる方法がわかりません。何か助けはありますか?

4

1 に答える 1

0

ええ、一致しないものの正規表現はもう少しトリッキーです。試してみてください:

preg_match_all(',<a(([^<]|<[^/]|</[^a]|</a[^>])+)</a>,', $a, $matches);
print_r($matches[0]);
于 2013-06-25T08:16:33.350 に答える