2009-12-24 72 views
6

Tôi muốn một mẫu regex để kiểm tra xem chuỗi không chứa bất kỳ chữ số nào.Không có chữ số Java Regex Pattern

Để minh họa: Tôi đang mã hóa Hệ thống bệnh viện và tôi muốn người dùng nhập tên bệnh nhân, Tất nhiên tên không được chứa bất kỳ chữ số nào, tôi có thể làm điều này bằng Regex như thế nào?

+0

Trừ khi, tất nhiên , đó là hợp pháp để có một tên bao gồm chữ số. Tôi đã nhìn thấy một số tên kỳ lạ trong những năm qua. – jball

+2

http://xkcd.com/327/ – jball

+1

jball: SQL không liên quan đến câu hỏi này. Tôi cũng nghĩ rằng việc kiểm tra các chữ số với regex là một chút quá mức cần thiết, chắc chắn nếu bạn mong đợi một hình thức nhất định cho tên thì không sao, nhưng tôi sẵn sàng đặt cược rằng sử dụng bất kỳ phương thức trợ giúp nào trong lớp 'Character' nhanh hơn bất kỳ regex nào. – Esko

Trả lời

18

\D là một tổ chức phi-chữ số, và như vậy thì \D* là bất kỳ số lượng phi chữ số liên tiếp. Vì vậy, toàn bộ chuỗi của bạn phải khớp với \D*.

+2

Regex đó là tốt nếu bạn đang sử dụng phương thức 'matches()'. Nếu bạn sử dụng 'find()', bạn sẽ luôn nhận được kết quả khớp, chữ số hoặc số không. Nếu vì lý do nào đó bạn phải sử dụng 'find()', bạn sẽ cần phải neo regex: '^ \ D * $' –

2

Hãy thử: \ D

Xem javadoc cho Pattern

0

tên Vâng thường chữ cái, vì vậy đây sẽ là tốt: [a-b,A-Z, ,-]+

EDIT: [a-zA-Z- ',]+

+2

còn tên bao gồm dấu nháy đơn thì sao? – jball

+2

Tại sao bạn có tất cả các dấu phẩy trong đó? Tất cả những gì họ làm là khớp với dấu phẩy bằng chữ trong chuỗi đích. Và những gì có phạm vi 'a-b'? Đó không phải là 'a-z' sao? –

+0

@Alan, Sửa lỗi đánh máy. – fastcodejava

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