如何使用preg_match()忽略空格

时间:2012-02-24 19:40:47

标签: php regex

我有一个看起来像的字符串:

">ANY CONTENT</span>(<a id="show

我需要获取任何内容。但是,中间有空格

</span> and (<a id="show

这是我的preg_match:

$success = preg_match('#">(.*?)</span>\s*\(<a id="show#s', $basicPage, $content);

\ s *代表空格。我得到一个空数组!

知道如何获取内容吗?

2 个答案:

答案 0 :(得分:0)

使用真正的HTML解析器。正则表达式并不适合这项工作。有关详细信息,请参阅this answer

您可以使用DOMDocument::loadHTML()解析为可以查询的结构化DOM对象,就像这个非常基本的示例(您需要进行错误检查):

$dom = new DOMDocument;
$dom->loadHTML($data);
$span = $dom->getElementsByTagName('span');
$content = $span->item(0)->textContent;

答案 1 :(得分:0)

我只需要:

“&GT;

正确定义上述内容,因为“&gt;在页面中太多,所以它不知道哪一个要特别选择。因此,它在”&gt;之前返回了所有内容。直到它击中(

解决方案:

.">

样品:

$success = preg_match('#\.">(.*?)</span>\s*\(<a id="show#s', $basicPage, $content);