如何修复从删除条件注释中删除 HTML 注释的正则表达式
本文关键字:删除 注释 HTML 正则表达式 条件 何修复 | 更新日期: 2023-09-27 18:36:48
我有以下代码:
source = Regex.Replace(source, "<!--.*?-->", string.Empty, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Compiled);
。它工作正常,除了它还剥离了条件注释:
<!--[if IE]>???<![endif]-->
有人可以告诉我如何更新正则表达式,使其不会删除条件注释吗?
您可以使用负面前瞻和负面后视:
<!--(?!'[).*?(?!<'])-->
应该只匹配不后跟 [ <!--
和任何前面没有 ] 的-->
,当然,.*? 匹配中间的文本。
使用Derek Slager非常有用且快速的正则表达式测试器进行测试:
源文本:
<!--[if IE]>???<![endif]-->
<!--Comment-->
模式:
<!--(?!'[).*?(?!<'])-->
结果:
找到 1 匹配项:
1. <!--Comment-->