最近我开始重构一个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("[^"]*"|'[^']*'|[^'">/])*>
我该怎么做才能用/>
?
答案 0 :(得分:1)
我假设您正在使用基于Eclipse内置的基于正则表达式的搜索并替换匹配*.jsp
的文件。
您需要使用一组括号对感兴趣的部分进行分组。
(?s)(<img("[^"]*"|'[^']*'|[^'">/])*)(>)
作为替代,每个组都可以通过$n
进行标识,其中n
是该组的基于1的索引。因此$1
会在没有<img ...
的情况下返回整个>
元素($2
会返回>
本身;请注意$0
返回整场比赛)。
因此,一旦对正则表达式进行分组,这个替换应该这样做:
$1/>
注意:仔细预览更换件。正则表达式和HTML不一定很好。