内容
<html>...<div id="endText" class="end-text" jcid="8311"><p>Hello</p>World<div class="ep-source cDGray"></div></div>...</html>
如何匹配
<p>Hello</p>World<div class="ep-source cDGray"></div>
谢谢!
@ Rizier123
$content = '';
if(preg_match('/"endText".+?>.+?(?=<div.+?class="ep-source cDGray">)/i', $html, $contents) &&
preg_match('/(?<=>).+/i', $contents[0], $contentss))
{
$content = iconv('GBK', 'UTF-8', $contentss[0]);
return rtrim('OK' . "\t" . $content);
}
else
{
return rtrim('SKIP' . "\t" . 'NO_CONTENT');
}
这种方法可以暂时使用,无法解决问题。
答案 0 :(得分:1)
只需匹配并删除第一级div。
正则表达式(匹配开头div,保存其内部,并匹配最后一个结束div):
/^<div id="endText"[^>]+>(.*?)<\/div>$/ism
PHP示例:
preg_match('/^<div id="endText"[^>]+>(.*?)<\/div>$/ism', $html, $contents);
echo $contents[1];
// returns: <p>Hello</p>World<div class="ep-source cDGray"></div>
将id
属性添加到正则表达式有助于指定特定的div