fork download
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.  
  4. class RegexUtils
  5. {
  6. private static final Pattern resourceURLCSS = Pattern.compile("url\\((['\"])((?:(?!://|\\1).)*)\\1\\)");
  7. private static final Pattern resourceURLHTML = Pattern.compile("(href|src|url)=(['\"])((?:(?!://|\\2).)*)\\2");
  8.  
  9. public static String makeCSSURLsAbsolute(String input, String baseURL)
  10. {
  11. Matcher matcher = resourceURLCSS.matcher(input);
  12. return matcher.replaceAll("url('"+baseURL+"$2')");
  13. }
  14. public static String makeHTMLURLsAbsolute(String input, String baseURL)
  15. {
  16. Matcher matcher = resourceURLHTML.matcher(input);
  17. return matcher.replaceAll("$1=\""+baseURL+"$3\"");
  18. }
  19.  
  20. public static void main(String[] args)
  21. {
  22. String fixed = RegexUtils.makeCSSURLsAbsolute("div#header { background-image: url('images/header-background.jpg'); } div#header { background-image: url('images/header-background.jpg'); }", "http://w...content-available-to-author-only...e.ca/");
  23. System.out.println(fixed);
  24.  
  25. fixed = RegexUtils.makeHTMLURLsAbsolute("href=\"wtfguys.css\" href=\"wtfguys.css\"", "http://w...content-available-to-author-only...e.ca/");
  26. System.out.println(fixed);
  27. }
  28. }
Success #stdin #stdout 0.12s 320576KB
stdin
Standard input is empty
stdout
div#header { background-image: url('http://w...content-available-to-author-only...e.ca/images/header-background.jpg'); } div#header { background-image: url('http://w...content-available-to-author-only...e.ca/images/header-background.jpg'); }
href="http://w...content-available-to-author-only...e.ca/wtfguys.css" href="http://w...content-available-to-author-only...e.ca/wtfguys.css"