ฉันใช้ RegexBuddy ในขณะที่ทำงานกับนิพจน์ทั่วไป จากไลบรารีฉันคัดลอกนิพจน์ทั่วไปเพื่อจับคู่ URL ฉันทดสอบสำเร็จภายใน RegexBuddy อย่างไรก็ตามเมื่อฉันคัดลอกเป็นString
รสJava และวางลงในโค้ด 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;
}
}
}
มีใครรู้บ้างว่าฉันทำผิด?