我在处理正则表达式时使用 RegexBuddy。我从它的库中复制了正则表达式来匹配 URL。我在 RegexBuddy 中测试成功。但是,当我将它复制为 Java String
风格并将其粘贴到 Java 代码中时,它不起作用。下面的类打印 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;
}
}
}
有谁知道我做错了什么?
原文由 Sergio del Amo 发布,翻译遵循 CC BY-SA 4.0 许可协议
请尝试使用以下正则表达式字符串。您的测试可能是以区分大小写的方式完成的。我添加了小写字母以及适当的字符串开始占位符。
这也有效:
笔记: