2009-12-24 3 views
6

문자열에 숫자가 없는지 정규식 패턴으로 확인하고 싶습니다.숫자 없음 자바 정규식 패턴

일러스트레이션 : 저는 병원 시스템을 코딩하고 있으며 환자 이름을 입력하고 싶습니다. 물론 이름에 숫자가 포함되어서는 안됩니다. Regex에서 어떻게 할 수 있습니까?

+0

물론하지 않는 한 , 숫자를 포함하는 이름을 갖는 것은 합법적입니다. 나는 몇 년 동안 이상한 이름을 보았다. – jball

+2

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

+1

jball : SQL은이 질문과 관련이 없습니다. 또한 정규 표현식을 사용하여 숫자를 검사하는 것은 약간의 잔인한 행위라고 생각합니다. 확실히 이름에 대한 특정 형식을 기대한다면 괜찮습니다.하지만 'Character'클래스 자체의 도우미 메서드를 사용하는 것이 좋습니다. 모든 정규식보다 빠릅니다. – Esko

답변

18

\D를위한 JavaDoc를 참조가 아닌 자리이기 때문에 다음 \D*은 행의 비 자리의 수이다. 따라서 전체 문자열은 \D*과 일치해야합니다.

+2

당신이'matches()'메소드를 사용한다면 그 정규 표현은 괜찮습니다. 'find()'를 사용하면 항상 일치, 숫자 또는 아니오를 얻을 수 있습니다. 어떤 이유로'find()'를 사용해야한다면'^ \ D * $' –

0

음 이름 보통 알파벳, 그래서 이것은 좋은 것 : [a-b,A-Z, ,-]+

편집합니다 \ D * \ Z

\ [a-zA-Z- ',]+

+2

어포 스트로피를 포함하는 이름은 어떻게됩니까? – jball

+2

왜 그 안에 모든 쉼표가 있습니까? 그들이하는 일은 대상 문자열에서 리터럴 쉼표와 일치하는 것입니다. 그리고 'a-b'범위는 무엇입니까? 그것이 'a-z'가 아닌가요? –

+0

@Alan, 오타가 수정되었습니다. – fastcodejava