Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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正则表达式替换大字符串中的多个文件路径_Java_Regex_String_Parsing_Html Parsing - Fatal编程技术网

Java正则表达式替换大字符串中的多个文件路径

Java正则表达式替换大字符串中的多个文件路径,java,regex,string,parsing,html-parsing,Java,Regex,String,Parsing,Html Parsing,所以我不是一个雷杰克斯专业人士,我正在寻找一个好的方法来做到这一点。我有一个大字符串,其中包含一个变量编号 < >用“替换”(/CODE)替换服务器名称,我可以这样做,这是中间的变量路径,我不知道如何包含。它不一定需要是正则表达式,但是在整个字符串中循环似乎很浪费。使用Java字符串方法replaceAll(正则表达式,replacement) 在哪里 这将转变 String directory = "images"; String replacement = "$1" + directory

所以我不是一个雷杰克斯专业人士,我正在寻找一个好的方法来做到这一点。我有一个大字符串,其中包含一个变量编号


< >用“<代码>替换”(/CODE)替换服务器名称,我可以这样做,这是中间的变量路径,我不知道如何包含。它不一定需要是正则表达式,但是在整个字符串中循环似乎很浪费。

使用Java字符串方法
replaceAll(正则表达式,replacement)

在哪里

这将转变

String directory = "images";
String replacement = "$1" + directory + "$2";
String replacement = directory + "$2";
进入

例如:

http://server.com/images/img1.jpg
这将转变

String directory = "images";
String replacement = "$1" + directory + "$2";
String replacement = directory + "$2";
进入


使用Java字符串方法
replaceAll(regex,replacement)

在哪里

这将转变

String directory = "images";
String replacement = "$1" + directory + "$2";
String replacement = directory + "$2";
进入

例如:

http://server.com/images/img1.jpg
这将转变

String directory = "images";
String replacement = "$1" + directory + "$2";
String replacement = directory + "$2";
进入


Apache Commons Lang提供了API来进行各种替换:

images/img1.jpg

Apache Commons Lang提供了API来进行各种替换:

images/img1.jpg

以下内容适用于替换所有
属性:

s.replaceAll("<img src='http://server.com[^']*/([^']*)' />", "<img src='images/$1' />");

如果替换的内容比您想要的多,只需添加更多要与正则表达式匹配的文本字符串。

以下内容适用于替换所有
属性:

s.replaceAll("<img src='http://server.com[^']*/([^']*)' />", "<img src='images/$1' />");

只要添加更多要匹配到正则表达式的文本字符串,如果替换的字符串比您想要的多。

您期望的最终结果是什么?用
图像/
替换路径的意思有点不清楚,您是否只想要
?是的,对不起。文件名应该保持不变,需要更改的是变量路径。images/img1.jpg images/img2.jpg。所有路径都应该指向images/dir。您期望的最终结果是什么?用
图像/
替换路径的意思有点不清楚,您是否只想要
?是的,对不起。文件名应该保持不变,需要更改的是变量路径。images/img1.jpg images/img2.jpg。所有路径都应该指向images/dir。这很酷,但是stuff1/目录是可变的,可以是任何内容。我需要一种方法来包含和更改一个可变的目录,然后将变量作为第三个参数放置:
StringUtils.replace(html)http://server.com/stuff1/,dirName+“/”这很酷,但是stuff1/目录是可变的,可以是任何东西。我需要一种方法来包含和更改一个可变的目录,然后将变量作为第三个参数放置:
StringUtils.replace(html)http://server.com/stuff1/,dirName+“/”src
属性使用单引号?不,它们实际上是双引号。不得不修改一下你的代码。刚刚编辑了我的答案,加入了一个双引号的替代方案。遗憾的是,这看起来不起作用。它只是替换最后一个标记,其余的都从字符串中完全移除。我认为它将所有实例替换为1字符串。是否对所有
src
属性使用单引号?不,它们实际上是双引号。不得不修改你的代码。刚刚编辑了我的答案,加入了双引号的替代选项。