1

最近我开始重构一个 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("[^"]*"|'[^']*'|[^'">/])*>
我应该怎么做才能用 替换这段代码/>

4

1 回答 1

1

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

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

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

作为替代,每个组可以通过组的$nn1 开始的索引来标识。因此,$1将返回整个<img ...元素而不返回>(并$2返回>自身;请注意,$0返回整个匹配项)。

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

$1/>

注意:仔细预览替换。正则表达式和 HTML 不一定能很好地结合在一起。

于 2013-01-17T16:35:49.087 回答