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+“/”遗憾的是,这看起来不起作用。它只是替换最后一个标记,其余的都从字符串中完全移除。我认为它将所有实例替换为1字符串。是否对所有src
属性使用单引号?不,它们实际上是双引号。不得不修改一下你的代码。刚刚编辑了我的答案,加入了一个双引号的替代方案。遗憾的是,这看起来不起作用。它只是替换最后一个标记,其余的都从字符串中完全移除。我认为它将所有实例替换为1字符串。是否对所有src
属性使用单引号?不,它们实际上是双引号。不得不修改你的代码。刚刚编辑了我的答案,加入了双引号的替代选项。