2013-01-11 45 views
13

Tôi muốn xác thực như vậy mà Chuỗi của tôi phải chứa ít nhất một bảng chữ cái.Làm thế nào để kiểm tra xem một chuỗi có chứa ít nhất một bảng chữ cái trong java?

Tôi đang sử dụng như sau:

String s = "111a11"; 
boolean flag = s.matches("%[a-zA-Z]%"); 

cờ mang lại cho tôi false mặc dù a là trong chuỗi của tôi s

+6

Không sử dụng%. Đó là cho SQL LIKE, không phải regexp. Sử dụng '. *' Thay vào đó Chỉ cần 's.matches (". * [A-zA-Z]. * ");' – ppeterka

Trả lời

15

Các biểu hiện thường xuyên bạn muốn là [a-zA-Z], nhưng bạn cần phải sử dụng phương pháp find().

Trang này sẽ cho phép bạn kiểm tra cụm từ thông dụng đối với đầu vào.

Regular Expression Test Page

và tại đây bạn có hướng dẫn Biểu thức chính quy Java.

Java Regular Expressions tutorial

+2

+1 cho find(), tôi sẽ cung cấp +1 khác cho trình kiểm tra regex trực tuyến. .. – ppeterka

+2

Nếu bạn xem xét các ngôn ngữ khác, bạn có thể sử dụng 'boolean m = str.matches (". * [\\ p {L}] +. *] ")' – dragos2

52

Bạn có thể sử dụng .*[a-zA-Z]+.* với String.matches() phương pháp.

boolean atleastOneAlpha = s.matches(".*[a-zA-Z]+.*"); 
+0

chúng ta có thể kiểm tra số ký tự tối thiểu và tối đa trong regex này? –

+1

Bạn đăng câu hỏi cho nó. –

Các vấn đề liên quan