使用Eclipse中的regex在JSP中使用自闭HTML标记替换未关闭的HTML标记

时间:2013-01-17 16:26:29

标签: html regex eclipse jsp

最近我开始重构一个Web应用程序项目。在JSP中编写的许多HTML标记不符合W3C定义的标准。 我想关闭所有未关闭的标签。

<img style="border:0px;"
     src="target/img/expande.gif"
     alt="Expand target information" > // --> this tag is not closed!

所以,有了这个expr,我可以搜索所有未关闭的标签:
 (?s)<img("[^"]*"|'[^']*'|[^'">/])*>
我该怎么做才能用/>

替换这段代码

1 个答案:

答案 0 :(得分:1)

我假设您正在使用基于Eclipse内置的基于正则表达式的搜索并替换匹配*.jsp的文件。

您需要使用一组括号对感兴趣的部分进行分组。

(?s)(<img("[^"]*"|'[^']*'|[^'">/])*)(>)

作为替代,每个组都可以通过$n进行标识,其中n是该组的基于1的索引。因此$1会在没有<img ...的情况下返回整个>元素($2会返回>本身;请注意$0返回整场比赛)。

因此,一旦对正则表达式进行分组,这个替换应该这样做:

$1/>

注意:仔细预览更换件。正则表达式和HTML不一定很好。