정규식은 String.matches()에서 작동하지 않습니다.
질문:
A 사용자가 소문자만 포함된 문자열과 일치하는 코드 조각을 작성했습니다. letter:
String[] words = {"{apf","hum_","dkoe","12f"}; for(String s:words) { if(s.matches("[a-z]")) { System.out.println(s); } }
그러나 출력으로 "dkoe"가 예상됨에도 불구하고 코드는 아무 것도 인쇄하지 않습니다.
답변:
반대 이름에서 알 수 있듯이 Java의 String.matches() 메서드는 전체 입력 문자열을 정규식과 일치시킵니다. 문자열의 일부만 일치시키려면 Pattern 및 Matcher를 대신 사용하십시오:
Pattern p = Pattern.compile("[a-z]+"); Matcher m = p.matcher(inputString); if (m.find()) // match
또는 전체 문자열을 일치시키려면 match() 메소드의 문자 클래스에 a를 추가하십시오:
if(s.matches("[a-z]+"))
또는 완전한 정규식 패턴을 사용하세요.
if(s.matches("^[a-z]+$"))
이것은 소문자만 포함하는 문자열과 일치합니다. ^ 및 $ 앵커는 일치 항목이 전체 입력 문자열을 포괄하도록 보장합니다.
위 내용은 내 정규식이 Java의 String.matches()에서 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!