C# 正则表达式-替换一些html标记

C# 正则表达式-替换一些html标记,c#,regex,C#,Regex,我想替换一些html空标记。是b,h1。。。但不是br,hr 我想:Regex.ReplacemyString,但我不知道如何排除br和hr 有人能帮我吗 谢谢 如果您知道要做哪些标记,可以这样做: Regex.Replace(myString, "<(b|p|div|span) />", "") var exp = new Regex("<(b|h1)\s*/?>", RegexOptions.IgnoreCase); (?:< *)(?!(?:br|hr)

我想替换一些html空标记。是b,h1。。。但不是br,hr

我想:Regex.ReplacemyString,但我不知道如何排除br和hr

有人能帮我吗


谢谢

如果您知道要做哪些标记,可以这样做:

Regex.Replace(myString, "<(b|p|div|span) />", "") 
var exp = new Regex("<(b|h1)\s*/?>", RegexOptions.IgnoreCase);
(?:< *)(?!(?:br|hr)) *\w+ *\/ *\>

在括号内,所有选项均以管道分隔。

如果您知道要执行哪些标记,可以按如下方式执行:

Regex.Replace(myString, "<(b|p|div|span) />", "") 
var exp = new Regex("<(b|h1)\s*/?>", RegexOptions.IgnoreCase);
(?:< *)(?!(?:br|hr)) *\w+ *\/ *\>

在括号内,所有选项均以管道分隔。

使用类似的模式匹配并替换它们:

<(TAG1|TAG2|TAG3|...)\s*/?>
工作原理:

括号中的位只是标识它应该处理的标记。 \s*识别零个或多个空白字符。其中一个在正则表达式的开头不需要,因为html标准不允许在标记名之前使用空格。 /? (可选)与“/”匹配。这只是为了灵活处理不使用/in空标记的HTML,因为HTML规范并不总是需要它。 您可以使用它删除标记,如下所示:

var strippedText = exp.Replace(input, String.Empty);

使用如下模式匹配并替换它们:

<(TAG1|TAG2|TAG3|...)\s*/?>
工作原理:

括号中的位只是标识它应该处理的标记。 \s*识别零个或多个空白字符。其中一个在正则表达式的开头不需要,因为html标准不允许在标记名之前使用空格。 /? (可选)与“/”匹配。这只是为了灵活处理不使用/in空标记的HTML,因为HTML规范并不总是需要它。 您可以使用它删除标记,如下所示:

var strippedText = exp.Replace(input, String.Empty);

试着这样做:

Regex.Replace(myString, "<(b|p|div|span) />", "") 
var exp = new Regex("<(b|h1)\s*/?>", RegexOptions.IgnoreCase);
(?:< *)(?!(?:br|hr)) *\w+ *\/ *\>

将任何标记添加到br | hr part中,并使用您不想匹配的“|”对其进行分隔。

尝试以下操作:

Regex.Replace(myString, "<(b|p|div|span) />", "") 
var exp = new Regex("<(b|h1)\s*/?>", RegexOptions.IgnoreCase);
(?:< *)(?!(?:br|hr)) *\w+ *\/ *\>

将任何标记添加到br | hr part中,并使用您不想匹配的“|”对其进行分隔。

@DavidB识别和替换特定字符串模式不是解析。@SeanU否,但解析是在执行这些步骤的过程中完成的……这不是重复,而且不一定需要解析器——看起来有一些自动生成的HTML正在创建空标记。对于这个简单的问题,正则表达式是一个很好的解决方案。在点击“关闭”或-1之前,请阅读右侧社区公告中的博文。@cjk,因为我们认为这个问题符合删除/关闭的标准。这并不意味着什么。有些人在同一篇博文中看到HTML和正则表达式时,会自动投下反对票。@DavidB识别和替换特定字符串模式不是解析。@SeanU否,但是解析是在执行这些步骤的过程中完成的…这不是重复的,也不一定需要解析器-看起来有一些自动生成的HTML正在创建空标记。对于这个简单的问题,正则表达式是一个很好的解决方案。在你接近或-1之前,阅读右侧社区公告中的博文。@cjk,因为我们认为这个问题符合删除/关闭的标准,这并不意味着卑鄙。有些人在同一篇博文中看到HTML和正则表达式时会自动降低投票率。这称为零宽度负向前瞻,如果你好奇的话,可以在这里阅读:一个稍微简单的版本适用于您的案例:这称为零宽度负前瞻(zero width negative lookahead),如果您对此感到好奇,可以在此处阅读:一个适用于您的案例的稍微简单的版本: