J'utilise RegexBuddy tout en travaillant avec des expressions régulières. De sa bibliothèque, j'ai copié l'expression régulière pour correspondre aux URL. J'ai testé avec succès dans RegexBuddy. Cependant, lorsque je l'ai copié en tant que String
saveur Java et que je l'ai collé dans du code Java, cela ne fonctionne pas. La classe suivante 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;
}
}
}
Quelqu'un sait-il ce que je fais mal?