正则表达式在anchor / href属性中选择未编码的&符号

时间:2013-06-14 18:16:29

标签: html regex xhtml replace sublimetext2

我想使用我的文本编辑器查找未编码的&符号(&),它们位于<a>标记内或href属性中,以便我可以编码这些&符号。正则表达式应在脚本标记,HTML注释(条件注释)或任何已编码的&符号中找到任何&符号。

到目前为止,我有:

&(?!amp;)

虽然它与已编码的&符号不匹配,但它确实匹配内部注释和脚本标记。以下是我正在使用的文字条件:

<!--[if (gte IE 6)&(lte IE 8)]-->

<a href="blog.html?id=1&amp;height=471&flexible=0&post_limit=1">

<script>
if something && another
 { do stuff; }
</script>

如何在内部脚本和注释中阻止正则表达式匹配&

1 个答案:

答案 0 :(得分:1)

您可以尝试使用捕获括号和反向引用:

搜索:(<a.*)&(?!amp;)(.*)替换:\1&amp;\2

在我的测试(Aptana Studio)中,如果一行有多个未编码的&符号,则需要多次搜索/替换(但如果我按住Alt + d进行替换/查找,整个文件会很快更新)