나는이 간단한 정규 표현식을 가지고 있습니다. 하지만 작동하지 않습니다. 내가 뭘 잘못하고 있는지 모르겠다.간단한 자바 정규 표현식이 작동하지 않습니다.
String name = "abc";
System.out.println(name.matches("[a-zA-Z]"));
false를 반환한다.
나는이 간단한 정규 표현식을 가지고 있습니다. 하지만 작동하지 않습니다. 내가 뭘 잘못하고 있는지 모르겠다.간단한 자바 정규 표현식이 작동하지 않습니다.
String name = "abc";
System.out.println(name.matches("[a-zA-Z]"));
false를 반환한다.
사용 :
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.
는 하나 개 이상의 알파벳을 일치하도록 정규식에
String name = "abc"; System.out.println(name.matches("[a-zA-Z]+"));
귀하의 정규식을 +
추가 [a-zA-Z]
는 하나의 문자와 일치해야합니다 , 하나 이상.
[a-zA-Z]
a-z
의 소문자와 일치하거나 A-Z
의 대문자와 일치합니다.
이 거짓 인에,이 패턴 [A-Za-z]
느릅 나무에 (String.matches()
의 문서를 참조) 에게 entrie 문자열을 일치 시키려고 평가하는 이유는 단 하나의 문자와 일치합니다. Pattern.compile("[A-Za-z]").matcher(str).find()
을 사용하여 하위 문자열이 일치하는지 확인하고 (이 경우 true를 반환) RegEx를 변경하여 여러 문자를 고려하십시오. 그렇게하는 가장 깨끗한 방법은
Pattern.compile("^[A-Za-z]+$");
^
마크 "문자열의 시작"$
마크 "문자열의 끝"입니다. +
은 "이전 토큰을 적어도 한 번"의미합니다.
당신과 시도
(* 의미 "이전 0 토큰 번 이상 일치") 대신
Pattern.compile("^[A-Za-z]*$");
를 사용뿐만 아니라 빈 문자열을 허용하려면 [a-zA-Z]+
[a-zA-Z]
은
멋진 시각화. 이거 어디서 났어? – AlexR
@AlexR regexper.com에서 –