JAVA用正则表达式替换绝对值的相对链接
我想在一个表示Html文件的字符串中,用绝对链接替换所有相对链接。我编写了下面的方法,但它不起作用。任何链接后面都有一个重复的baseurl,如 及 使用:JAVA用正则表达式替换绝对值的相对链接,java,regex,Java,Regex,我想在一个表示Html文件的字符串中,用绝对链接替换所有相对链接。我编写了下面的方法,但它不起作用。任何链接后面都有一个重复的baseurl,如 及 使用: 如果您能具体告诉我们什么不起作用,我们可能会提供帮助。如果您能共享一些相对URL和预期的绝对URL,这将非常有用。@AcdcRocknRoll-您是否单击了上面的链接“类URL”? public static String replacePattern(URL targetUrl,String urlAsString,String
如果您能具体告诉我们什么不起作用,我们可能会提供帮助。如果您能共享一些相对URL和预期的绝对URL,这将非常有用。@AcdcRocknRoll-您是否单击了上面的链接“类URL”?
public static String replacePattern(URL targetUrl,String urlAsString,String patternString) throws IOException{
System.out.println(targetUrl.toString());
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(urlAsString);
Set<String> replacedStrings = new TreeSet<String>();
//return matcher.replaceAll(targetUrl.toString()+"$0");
while (matcher.find()) {
String relativeLink = matcher.group(1);
//System.out.println("Find Link " + relativeLink);
if(!replacedStrings.contains(relativeLink)){
//System.out.println("Relative Link " + relativeLink);
String newLink = targetUrl.toString() + relativeLink;
//System.out.println("New Link " + newLink);
urlAsString = urlAsString.replace(relativeLink,newLink);
replacedStrings.add(relativeLink);
}
}
return urlAsString;
}
href=['\"](/[^'\"]+)['\"]
src=['\"](/[^'\"]+)['\"]
URL baseUrl = new URL("http://www.domain.com/folder/");
URL url = new URL(baseURL , "url.html");