올바른 사용법을 이해하려고 노력 중입니다. »원자 그룹화«일명»독립적 하위 표현«일명»비역추적 하위 모드« [이것은 동일한 것에 대해 제가 찾은 용어이지만 그렇다고 해서 덜 복잡해지는 것은 아닙니다.]
egrep '123(?>fruit|juiceomatic)machine'
뜻: 찾다123fruitjuiceomaticmachine
- 하지만일치시키려는 노력을 중지하세요.[나머지] 괄호 안의 내용은 if
123
뒤에fruit
!
맞습니까? 제가 뭔가 중요한 것을 놓쳤나요?
제가 이 질문을 하는 이유는 대부분 예상한 결과를 얻기 때문입니다. 하지만 그것이 제가 올바르게 하고 있기 때문인지 아니면 단지 행운의 추측을 했기 때문인지 100% 확신할 수는 없습니다.
답변1
이는 확장 정규 표현식(ERE)이 아닙니다. 뒤에 or ( 무시) 뒤에 가 egrep
오는 것으로 해석됩니다 . 이는 다음과 일치함을 의미합니다.123
>fruit
juiceomatic
?
machine
123>fruitmachine
123>juiceomaticmachine
하지만:
123fruitjuiceomaticmachine
이 (?>...)
기호는 PCRE에서 유래되었으며 이는 다음을 의미합니다.갇히지 않은 원자, 바라보다 pcresyntax(3)
. -P
GNU grep 및 스위치와 함께 사용할 수 있습니다 .
내가 올바르게 이해했다면 따라야 하며 123
, fruit
이는 곧 다가올 수도 있고 juiceomatic
아무것도 아닐 수도 있습니다. 이 경우에는 123fruit(|juiceomatic)machine
이것이 당신이 원하는 ERE라고 생각합니다 .