2014-07-14 3 views

답변

3

사용 :

name.matches("[a-zA-Z]+") // matches more than one character 

또는 name.matches("\\w+")// matches more than one character

name.matches("[a-zA-Z]") // matches exactly one character. 
3

는 하나 개 이상의 알파벳을 일치하도록 정규식에

String name = "abc"; System.out.println(name.matches("[a-zA-Z]+")); 

귀하의 정규식을 + 추가 [a-zA-Z]는 하나의 문자와 일치해야합니다 , 하나 이상.

[a-zA-Z]a-z의 소문자와 일치하거나 A-Z의 대문자와 일치합니다.

1

이 거짓 인에,이 패턴 [A-Za-z] 느릅 나무에 (String.matches()의 문서를 참조) 에게 entrie 문자열을 일치 시키려고 평가하는 이유는 단 하나의 문자와 일치합니다. Pattern.compile("[A-Za-z]").matcher(str).find()을 사용하여 하위 문자열이 일치하는지 확인하고 (이 경우 true를 반환) RegEx를 변경하여 여러 문자를 고려하십시오. 그렇게하는 가장 깨끗한 방법은

Pattern.compile("^[A-Za-z]+$"); 

^ 마크 "문자열의 시작"$ 마크 "문자열의 끝"입니다. +은 "이전 토큰을 적어도 한 번"의미합니다.

당신과 시도

0

(* 의미 "이전 0 토큰 번 이상 일치") 대신

Pattern.compile("^[A-Za-z]*$"); 

를 사용뿐만 아니라 빈 문자열을 허용하려면 [a-zA-Z]+

enter image description here

[a-zA-Z]

enter image description here

+1

멋진 시각화. 이거 어디서 났어? – AlexR

+0

@AlexR regexper.com에서 –

관련 문제