import java.util.regex.Pattern;
class HowEasy {
public boolean matches(String regex) {
System.out.println(Pattern.matches(regex, "abcABC "));
return Pattern.matches(regex, "abcABC");
}
public static void main(String[] args) {
HowEasy words = new HowEasy();
words.matches("[a-zA-Z]");
}
}
Kết quả là Sai. Tôi làm sai ở đâu? Ngoài ra tôi muốn kiểm tra xem một từ chỉ chứa các chữ cái và có thể hoặc không kết thúc bằng một dấu chấm đơn. Regex cho điều đó là gì?Làm thế nào để đối sánh các chữ cái chỉ bằng cách sử dụng java regex, phương thức khớp?
tức là "abc" "abc". hợp lệ nhưng "abc .." không hợp lệ.
Tôi có thể sử dụng phương thức indexOf()
để giải quyết, nhưng tôi muốn biết liệu có thể sử dụng một regex đơn hay không.
Bạn có quyền về [a-zA-Z] + bây giờ nó chỉ phù hợp với các chữ cái. Trên thực tế, biểu thức thứ hai phải là "abc \\.?" (trong nhật thực) –
'trong nhật thực' không phải là vấn đề. Bạn có thể nhập một mẫu từ tệp, từ dòng lệnh, từ một JTextField, trái với một hằng số theo nghĩa đen trong mã nguồn - điều này tạo nên sự khác biệt. Tôi đã đề cập trong khi chỉnh sửa ('che dấu gạch chéo ngược '). Cảm ơn dù sao đi nữa. –
Lưu ý rằng '\ w' cũng nắm bắt các dấu gạch dưới và số, tức là' [a-zA-Z_0-9] 'như được định nghĩa trong [Mẫu] (https://docs.oracle.com/javase/7/docs/api /java/util/regex/Pattern.html) – reallynice