我陷入了典型案例。.我需要表中没有类或标签的文本。.这只是纯文本..我只想获取此文本。我需要抓取我想要此文本。我该怎么做
我的HTML
<td class="example">
<strong>text in strong</strong><br>
<strong>2nd text in strong:</strong>
I WANT THIS TEXT
<br>
<strong><span style="color:red;">another text</span></strong>
<br>
<a href="#" target="_blank">Click Here</a>
</td>
到目前为止,我已经尝试过: 由于我们必须抓取多行,因此我正在使用 foreach 循环
foreach($html->find('td.example') as $element){
echo $element->find('strong', 1)->outertext . "<br/>";
}
答案 0 :(得分:0)
如果我们假设您的html字符串位于变量$ html中,则以下正则表达式应该起作用:
/** Replace the carriage return with '^' */
$html = str_replace("\r", "^", $html);
/** Replace the line feed with '~' */
$html = str_replace("\n", "~", $html);
/** regular expression is used to match the text */
preg_match("/<strong>.*<\/strong><br>.*<strong>.*<\/strong>(.+)<br><strong><span style="color:red;">.*<\/span><\/strong>/iU", $html, $matches);
/** The '^' is replaced with '\r' */
$matches[1] = str_replace("^", '\r', $matches[1]);
/** The '~' is replaced with '\n' */
$text = str_replace("~", '\n', $matches[1]);
变量$ text包含匹配文本