(e) grep 및 원자 그룹화 [이해력 질문]

(e) grep 및 원자 그룹화 [이해력 질문]

올바른 사용법을 이해하려고 노력 중입니다. »원자 그룹화«일명»독립적 하위 표현«일명»비역추적 하위 모드« [이것은 동일한 것에 대해 제가 찾은 용어이지만 그렇다고 해서 덜 복잡해지는 것은 아닙니다.]

  • egrep '123(?>fruit|juiceomatic)machine'뜻: 찾다 123fruitjuiceomaticmachine
  • 하지만일치시키려는 노력을 중지하세요.[나머지] 괄호 안의 내용은 if 123뒤에 fruit!

맞습니까? 제가 뭔가 중요한 것을 놓쳤나요?

제가 이 질문을 하는 이유는 대부분 예상한 결과를 얻기 때문입니다. 하지만 그것이 제가 올바르게 하고 있기 때문인지 아니면 단지 행운의 추측을 했기 때문인지 100% 확신할 수는 없습니다.

답변1

이는 확장 정규 표현식(ERE)이 아닙니다. 뒤에 or ( 무시) ​​뒤에 가 egrep오는 것으로 해석됩니다 . 이는 다음과 일치함을 의미합니다.123>fruitjuiceomatic?machine

123>fruitmachine
123>juiceomaticmachine

하지만:

123fruitjuiceomaticmachine

(?>...)기호는 PCRE에서 유래되었으며 이는 다음을 의미합니다.갇히지 않은 원자, 바라보다 pcresyntax(3). -PGNU grep 및 스위치와 함께 사용할 수 있습니다 .

내가 올바르게 이해했다면 따라야 하며 123, fruit이는 곧 다가올 수도 있고 juiceomatic아무것도 아닐 수도 있습니다. 이 경우에는 123fruit(|juiceomatic)machine이것이 당신이 원하는 ERE라고 생각합니다 .

관련 정보