Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java HTML正则表达式问题_Java_Html_Regex - Fatal编程技术网

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\"");