用于将img标记替换为结束标记的Java Reg表达式

时间:2013-11-21 14:08:49

标签: java html regex

我希望reg表达式将html标签替换为close标签,如:

<img src="path"> with <img src="path" /> or <img src="path" ></img>

请我需要这个,因为我需要这个适当的html用于Itext pdf生成器api它需要适当的结束标签..请给我解决方案

3 个答案:

答案 0 :(得分:0)

我不确定这是否是您正在寻找的但是可能而不是正则表达式尝试使用HTML解析器? Jsoup似乎会返回类似于您所寻找的内容。

Document doc = Jsoup.parse("<img src=\"path\"><div>something");
System.out.println(doc);

输出:

<html>
 <head></head>
 <body>
  <img src="path" />
  <div>
   something
  </div>
 </body>
</html>

答案 1 :(得分:0)

如果您真的只想将所有<img >标记更改为<img />标记,则可以使用以下sed命令,但正如其他人指出的那样,这不是一个好主意,它很容易出错

sed "s/\(<\s*img.*\)>/\1\/>/" Your_File.html

答案 2 :(得分:0)

<强>查找

(<img[^>]*[^/]>)(?!\s*</img>)

<强>替换

$1</img>

这可以确保您不会搞砸已经关闭的标签 例如您不希望将<img src="path"></img>替换为<img src="path"></img></img>

在Java中,我相信代码可能

str.replaceAll("(<img[^>]*[^/]>)(?!\\s*</img>)", "$1</img>");