正则表达式获取所有没有属性的html标签

时间:2014-02-21 11:25:19

标签: c regex

我需要从字符串中获取所有没有属性的HTML标记。我尝试了正则表达式:< *([^/][^ ]*).*?>但它仍然获取HTML标记和属性。

任何人都可以帮我找到一个正则表达式。

实施例

来自<html><head></head><body class="body"><a href="abc.html"></a></body>, 我想获得<html><head></head><body><a></a></body>

正则表达式只获取html标签

到html头部身体一个身体

谢谢大家。

1 个答案:

答案 0 :(得分:1)

虽然尝试使用正则表达式解析HTML一般不是一个好主意,但在这种情况下它可以正常工作。

尝试以下替换

s/<( *\w+)( [^>/]+)?(/?)>/<$1$3>/g

这与开始尖括号匹配,然后捕获可能的空格和任何单词字符([A-Za-z0-9_])。然后,如果有一个空格,后跟任何既不是斜线也不是结束尖括号的字符,那么它就是匹配的。然后它捕获一个可选的斜杠和结束尖括号。

它用开角支架,捕获的标签,捕获的可选斜线和关闭角括号替换它。

这假设没有开口或关闭尖括号标签的一部分。