正则表达式仅获取不在标签之间的文本

时间:2020-06-24 00:49:18

标签: php html regex text replace

我正在尝试创建一个正则表达式,该表达式不会使我在<h1> </h1>标记之间输入文本。我设法创建了一个表达式来在标签之间获取文本,但这与我要的相反。任何帮助将不胜感激!

示例: <h1> Don't include here </h1> Include this part应该给Include this part

2 个答案:

答案 0 :(得分:0)

正则表达式在这里是正确的工具吗?如果确实需要从HTML提取数据,请考虑使用适当的HTML解析器。 PHP的内置DOMDocument支持解析HTML。

$document=DOMDocument::loadHtml($yourHtml); //Parse the HTML
$headings=$document->getElementByTagName("h1"); //Find all H1's
foreach($headings as $heading)
    $document->removeChild($heading); //Remove all H1's
$remainingText=$document->textContent; //Remaining text after H1's have been removed

答案 1 :(得分:0)

这是一个片段,可以捕获任何标签之外的任何文本,我对regex不够熟悉,无法将其特定于<h1>标签,但这可能对您有用用例?

[^<>]*(?![^<]*>|[^<>]*<\/)

RegExr link