>Java >java지도 시간 >내 정규식이 Java의 String.matches()에서 작동하지 않는 이유는 무엇입니까?

내 정규식이 Java의 String.matches()에서 작동하지 않는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-29 17:49:14327검색

Why Doesn't My Regex Work in Java's String.matches()?

정규식은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.