我正试图获得所有
<br> </br> <br/> and <br /> <p> and </p>
在我的代码中 但我现在的正则表达式正在
<b>
/* and */
</b>
我也希望他们被排除在外。我该怎么做呢?
private static string StripTagsRegex(string source)
{
return Regex.Replace(source, "<.?br?/?>|<.?p?/?>", string.Empty);
}
答案 0 :(得分:2)
在?
和br
之后删除p
,并将.?
更改为`/?
return Regex.Replace(source, @"</?br/?>|</?p/?>", string.Empty);
这样做的结果是它还会删除某些无效标签,例如</p/>
,如果这是一个大问题,你可以只有4个而不是2个。
答案 1 :(得分:0)
根据罗宾的建议重新发表评论:
正如其他人提到的,你应该使用HTML解析器进行HTML解析,但是如果你想用正则表达式解析html,你应该非常小心,不要匹配非直接性质的右括号。所以相反它应该是(我没有检查,所以可能是不正确的)
</?(?:br|p)(\s|/)[^>]*>
点不要使用.
跳过字符,因为您可以跳过关闭>
。而是搜索>
以外的任何内容,即[^>]
。