패턴 반복과 정규 표현식

패턴 반복과 정규 표현식

패턴을 채택하다

[UGLER]*

문자열 UUG가 일치할 수 있나요? 즉, 중복이 허용되나요?

답변1

원칙적으로 그렇습니다. 그러나가능한사용하는 정규식 스타일에 따라 다릅니다. 적어도,갈아 바수다,오히려그리고폴리 메라 제 연쇠 반응모두 문자열과 일치합니다. 표현의 [UGLER]*뜻은U, G, L, E 또는 R 그룹에서 0개 이상의 연속 문자와 일치합니다..

다양한 정규식 유형에 대해 쉽게 테스트할 수 있습니다.

  • 갈아 바수다

    $ echo UUG | grep '[UGLER]*'
    UUG
    
  • 오히려

    $ echo UUG | grep -E '[UGLER]*'
    UUG
    
  • 폴리 메라 제 연쇠 반응

    $ echo UUG | grep -P '[UGLER]*'
    UUG
    

물론, 당신이 찾고 있기 때문에또는 그 이상으로 예상하지 못한 것과도 일치합니다.

$echo "foobar" | grep  '[UGLER]*'
foobar

사용 중인 정규식 스타일이 이를 지원하는 경우 +대신 를 사용하십시오 *. 예를 들어 PCRE를 사용하십시오.

 $echo -e "UUG\nfoobar" | grep -P '[UGLER]*'
 UUG
 foobar
 $echo -e "UUG\nfoobar" | grep -P '[UGLER]+'
 UUG

답변2

패턴이 정규 표현식이 아닌 파일글로브 패턴이라고 가정하면 "UUG"라는 파일 이름과 일치합니다. 이 패턴은 U, G, L, E 또는 R로 시작하는 모든 파일과 일치합니다.

직접 테스트해 볼 수 있습니다.

touch UUG
ls -l [UGLER]*

패턴이 정규 표현식이면 일치합니다.어느0개 이상의 [UGLER] 인스턴스와 일치하기 때문에 문자열입니다. 0개 이상이 아닌 1개 이상을 일치시키려면 +대신 사용하십시오.*

관련 정보