2012-10-17 4 views
4

적어도 하나의 문자와 하나의 숫자가 포함 된 영숫자 문자열을 일치 시키려합니다. 다음을 하나의 정규식으로 결합하는 간단한 방법이 있습니까?문자와 숫자가 모두 필요한 영숫자와 일치하는 정규식

strValue.matches("[A-Z0-9]+") 
    && strValue.matches(".*[A-Z].*") 
    && strValue.matches(".*[0-9].*") 
+1

@ m.buettner : 사실, 잘못되었습니다. 'String.matches (String)'은 전체 문자열과 일치하는'Matcher.matches()'를 사용합니다. 설명하는 동작은'Matcher.find()'에서 구현됩니다. –

+0

오, 좋아. –

답변

6

미리보기 어설 션을 사용하십시오.

strValue.matches("^(?=.*[A-Z])(?=.*\\d)[A-Z\\d]+$") 
+0

왜 줄 바꿈을 사용합니까? – lilalinux

+2

일치 시작 전에 영숫자가 아닌 문자가 없는지 확인하십시오 (실제로 문자열 맨 끝에 앵커를 추가해야합니다) –

+0

@xdazz 이스케이프 시퀀스를 편집했는데 올바르지 않습니다. – Juvanis

관련 문제