我想用定义的URL替换HTML页面上的所有链接以及查询字符串中的原始链接。
以下是一个例子:
"http://www.ex.com abc http://www.anotherex.com"
应替换为:
"http://www.newex.com?old=http://www.ex.com ABC http://www.newex.com?old=http://www.anotherex.com"
我考虑过使用replaceAll,但我不确切知道如何在替换中重用正则表达式模式。
答案 0 :(得分:2)
类似
String processed = yourString.replaceAll([ugly url regexp],"http://www.newex.com?old=$0")
$ 0是对正则表达式的主捕获组的引用。请参阅Matcher.appendReplacement
的文档对于有价值的正则表达式,您可以从here中选择
答案 1 :(得分:1)
我会通过做类似的事情来解决这个问题:
List<String> allMatches = new ArrayList<String>();
Matcher m = Pattern.compile("regex here")
.matcher(StringHere);
while (m.find()) {
allMatches.add(m.group());
}
for(String myMatch : allMatches)
{
finalString = OriginalString.replace(myMatch, myNewString+myMatch);
}
我没有测试任何这个,但它应该让你知道如何处理它