Ich benutze RegexBuddy, während ich mit regulären Ausdrücken arbeite. Aus seiner Bibliothek habe ich den regulären Ausdruck kopiert, um mit den URLs übereinzustimmen. Ich habe erfolgreich in RegexBuddy getestet. Wenn ich es jedoch als Java- String
Version kopiert und in Java-Code eingefügt habe, funktioniert es nicht. Die folgenden Klassen drucken 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;
}
}
}
Weiß jemand was ich falsch mache?