获取所有文本,但不获取正则表达式匹配项

时间:2018-10-03 13:29:37

标签: php html tags

嗨:)

我尝试获取与正则表达式不匹配的所有文本, 我使用PHP

我的正则表达式是:

/(<[^>]+>)/is

我将在HTML标记内获取所有文本

我尝试过:(?!(<[^>]+>))和很多东西……

输入:

<html><head><title>Nice page</title></head>
<body>Hello World <a href=http://cyan.com title="un lien">Ceci est un lien</a> <a>sdfaf</a>
<br /><a href=http://www.riven.com> Et ca aussi <img src=wrong.image title="et encore ca">dd</a>
</body></html>

我想用正则表达式匹配html标记内的所有文本

赞:

“尼斯页面 你好世界文化基金会 Et ca aussi dd“

谢谢! :)

3 个答案:

答案 0 :(得分:2)

使用DOMDocument来做到这一点:

$dom = new DOMDocument;
$dom->loadHTML($yourstring);
$xp = new DOMXPath($dom);

foreach($xp->query('//text()') as $textNode) {
    echo $textNode->nodeValue, PHP_EOL;
}

答案 1 :(得分:0)

此正则表达式应逐步选择所有文本内容:

/>([^<]+)/g

答案 2 :(得分:0)

有一个strip_tags()函数无需进一步配置即可完成

<?php
$input = '<html><head><title>Nice page</title></head><body>Hello World <a href=http://cyan.com title="un lien">Ceci est un lien</a><a>sdfaf</a><br /><a href=http://www.riven.com> Et ca aussi <img src=wrong.image title="et encore ca">dd</a><body></html>';
print( strip_tags($input) );