我正在尝试编写正则表达式只是为了删除 HTML标记但不幸的是我删除了标记以及此标记的内容,这称为贪婪正则表达。
例如
如果我有这个标签
<div> HELLO </div>
使用我的正则表达式我删除了div标签(div),我删除了这个标签的内容,例如(HELLO)字。
所以请如何编写懒惰的正则表达式,只是为了删除标记而不删除此标记的内容。
答案 0 :(得分:0)
您需要使用ungreedy正则表达式,例如:
< [^>]+>
.+
将采用它可以包含的所有字符,这意味着所有字符。
答案 1 :(得分:0)
<[^>]*>
这应该删除所有标签,包括结束标签。
答案 2 :(得分:0)
在此之前,您应该知道几乎每种脚本语言都有一个stip_tags
,它可以完全满足您的需求。但是如果你想要一个自定义解决方案,可能就是这个:
<.*?>
匹配单个标签。以下,表示正则表达式:
现在执行取决于你正在使用的语言脚本。
$re = "/(<.*?>)/";
$str = "<p id=\"test\">This is a simple test</p>";
echo preg_replace($re, "", $str);
点击此链接demo查看一个有效的示例。
在javascript中,您可以执行以下操作:
var re = "<.*?>";
var str = '<p id="test">This is a simple test</p>';
alert(str.replace(new RegExp(re,"gm"), ""));
点击此链接demo查看一个有效的示例。
希望它有用!