正则表达式:从字符串中提取img-tags

Web*_*urk 1 php regex

我想这样做:

<span class="introduction">
   <img alt="image" src="/picture.jpg" />
</span>
Run Code Online (Sandbox Code Playgroud)

变成这个:

   <img alt="image" src="/picture.jpg" />
Run Code Online (Sandbox Code Playgroud)

我如何用正则表达式做到这一点?也就是说,如何从给定的html字符串中仅提取img-tag?

注意:在introduction-tag中可以有更多的html但只有一个img-tag

472*_*084 9

你不应该在HTML上真正使用正则表达式,那么:?

$string = '<span class="introduction"><img alt="image" src="/picture.jpg" /></span>';

echo strip_tags($string, '<img>');
Run Code Online (Sandbox Code Playgroud)

否则我会使用HTML/XML解析器


Ken*_*ent 6

怎么样

"<img[^>]*>"
Run Code Online (Sandbox Code Playgroud)

尝试用grep

kent$  echo '<span class="introduction">
quote>    <img alt="image" src="/picture.jpg" />
quote> </span>
quote> '|grep -P "<img[^>]*>"
   <img alt="image" src="/picture.jpg" />
Run Code Online (Sandbox Code Playgroud)

  • 如果输入`<img rel="nofollow noreferrer" alt =">"src ="/ path.jpg"/>`,这将失败 (2认同)

小智 5

preg_match('#(<img.*?>)#', $string, $results);

应该工作,导致 $results[1]