String.matches()가 예상 정규식과 일치하지 않습니다
String.matches("[a-z)를 사용하여 특정 패턴을 일치시키려고 할 때 ]"), 문자열에 소문자가 포함되어 있음에도 불구하고 예상대로 작동하지 않는다는 사실이 놀랍습니다. letter.
설명:
Java의 String.matches() 메소드는 전체 입력 문자열이 제공된 정규 표현식과 일치하는지 확인하도록 설계되었습니다. 이 경우 "[a-z]" 표현식은 단일 소문자 일치를 시도합니다. 그러나 코드는 단어 배열의 각 문자열을 확인하며 그 중 소문자로 시작하는 문자열은 없습니다.
해결책:
문자열 내의 패턴을 일치시키려면 다음 중 하나를 수행하세요. Pattern 및 Matcher 클래스를 사용해야 합니다. Pattern 클래스는 정규식을 Matcher 개체로 컴파일한 후 입력 문자열에서 일치 항목을 확인하는 데 사용할 수 있습니다.
다음은 Pattern 및 Matcher를 사용하여 일치 항목을 찾는 코드의 수정된 버전입니다.
Pattern p = Pattern.compile("[a-z]+"); for(String s:words) { Matcher m = p.matcher(s); if (m.find()) { System.out.println(s); } }
이제 이 코드는 "dkoe"를 올바르게 인쇄합니다.
위 내용은 `String.matches()`가 정규 표현식에서 예상대로 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!