Utilizo RegexBuddy mientras trabajo con expresiones regulares. De su biblioteca, copié la expresión regular para que coincida con las URL. Probé con éxito dentro de RegexBuddy. Sin embargo, cuando lo copié como String
versión Java y lo pegué en código Java, no funciona. La siguiente clase imprime false
:
public class RegexFoo {
public static void main(String[] args) {
String regex = "\\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]";
String text = "http://google.com";
System.out.println(IsMatch(text,regex));
}
private static boolean IsMatch(String s, String pattern) {
try {
Pattern patt = Pattern.compile(pattern);
Matcher matcher = patt.matcher(s);
return matcher.matches();
} catch (RuntimeException e) {
return false;
}
}
}
¿Alguien sabe lo que estoy haciendo mal?