java HTML正则表达式问题
我正在尝试转换以下字符串:java HTML正则表达式问题,java,html,regex,Java,Html,Regex,我正在尝试转换以下字符串: <img src="image.jpg" ... /> 用这个 <img src="cid:image" ... /> 需要维护“image”字符串,但字符串本身可能不同。在html文档中有不同的img标记,每个标记具有不同的图像文件 例如,如果我有: <img src="mylogo.jpg" ... /> 它应该转变为: <img src="cid:mylogo" ... /> 图像可以是jp
<img src="image.jpg" ... />
用这个
<img src="cid:image" ... />
需要维护“image”字符串,但字符串本身可能不同。在html文档中有不同的img标记,每个标记具有不同的图像文件
例如,如果我有:
<img src="mylogo.jpg" ... />
它应该转变为:
<img src="cid:mylogo" ... />
图像可以是jpg
或gif
感谢您的帮助,注意:
除了注释中提到的Regex
不是解析HTML
的正确工具之外,因为Java中有许多解析HTML
的工具,例如,您可以看看,我将为您提供一个适合您使用Regex需要的解决方案
解决方案:
您可以使用以下正则表达式:
src=\"([\\:\\w\\s\\/]+)\\.\\w{3}\"
这是您需要的代码:
String html = "<img src=\"folder1/mylogo.jpg\" ... />";
Pattern pattern = Pattern.compile("src=\"([\\:\\w\\s\\/]+)\\.\\w{3}\"");
Matcher matcher = pattern.matcher(html);
while (matcher.find()) {
System.out.println("group 1: " + matcher.group(1));
//This line will give you the wanted output.
System.out.println("src=\"cid:"+matcher.group(1)+"\"");
System.out.println("Final Result: "+html.replaceAll("src=\"([\\:\\w\\s\\/]+)\\.\\w{3}\"", "src=\"cid:$1\""));
}
我们使用
$1
指向第一个捕获组。将其读入XML解析器,修改并输出结果。您可以使用诸如Regex之类的工具来进行HTML解析。除此之外,题目讲的是一个问题,你有哪一个问题??你能发布你的代码吗?问题是没有解决这个问题的代码:)没有第一个和最后一个斜杠,java就不是javascript@WashingtonGuedes我们只需要用[\\w\\/]+
更改\w+
。我们将向列表中添加\s。我已使用([\\:\\w\\s\\/]+)对其进行了编辑,以包含所有可能的内容
@chsdk:使用您的代码,我得到了“src=”cid:folder1/mylogo“,但我需要整个部分”
html.replaceAll("src=\"([\\:\\w\\s\\/]+)\\.\\w{3}\"", "src=\"cid:$1\"");