0
$str = '<div class="rss"><img src="http://www.wired.com/images_blogs/gadgetlab/2013/10/1125_hbogo_660-660x436.jpg" alt="You Can Now Get HBO GO Without Paying for Other Channels">
</div>Fans of';

我试图在 the 之后获取文本,<div class="rss"></div>但我使用的每个表达式似乎都不起作用。

匹配.rss

if(preg_match('/^(<div class=\"rss\">[\S\s]+?</div>([\S\s]*)$/i', $item_content, $matches)) { 

有人可以帮忙解决这个问题吗?

最初我有这个表达式来匹配图像标签而不是 div 并且通过使用它可以正常工作

if(preg_match('/^(<img[\S\s]+?>)([\S\s]*)$/i', $item_content, $matches)) {
4

2 回答 2

1

我没有深入研究正则表达式,但您的正则表达式仅在解决一些语法问题时效果很好。

它应该是:

^<div class=\"rss\">[\S\s]+?<\/div>([\S\s]*)$/i

现场演示

于 2013-10-27T14:34:23.593 回答
0

这可能会有所帮助:

<?php
$item_content = '<div class="rss"><img src="http://www.wired.com/images_blogs/gadgetlab/2013/10/1125_hbogo_660-660x436.jpg" alt="You Can Now Get HBO GO Without Paying for Other Channels">
</div>Fans of';

if(preg_match('/^(<div class=\"rss\">[\S\s]+?<\/div>)([\S\s]*)$/i', $item_content, $matches)) {
  $div = $matches[1];
  $text = $matches[2];

  echo "<textarea style=\"width: 600px; height: 300px;\">";
  echo $div . "\n";
  echo $text . "\n";
  echo "</textarea>";
}
?>
于 2013-10-27T16:56:34.247 回答