패턴이 일치하고 그룹 끝나기 전에 특정 단어가없는 경우에만 캡처 그룹을 허용하려고합니다. 나는 접근 방법 #을 시도하고 아무도 명확하게 내가 개념받지 못했습니다, 제대로 작동하지 :문자열 끝의 부정적인 어설 션 수정
에 관계없이 내 캡처 그룹이 뭔가를 포착하는 일의 https://regex101.com/r/iP2xY0/3 https://regex101.com/r/iP2xY0/4
내 목표는 경우입니다 일치하지 않는 단어를 패턴 중간에 제거합니다.
RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice))(?!Reject).*
- RC : * 안녕 밥 스미스 < \ 사람>
- RC : * 안녕하세요 데이비드 존스 (David Jones) * 참고 즐 즐 < \ 사람>
- RC : * 안녕하세요 테드 워렌 * 사람 \ < 거부 >는
캡처 Namegrouop는 반환하도록되어 :
- 밥
- 데이비드
- ''
그래서 "거부"를 NameGroup 캡처가 <
캡처 끝나는 것도 다음에 발견되는 경우라고 그것의 NameGroup과 < Reject
나타납니다 할 단어 사이의 경우 아니.
https://regex101.com을/r/iP2xY0/5는 거부에만 일치합니다. –
@be_good_do_good 감사합니다. 그러나 내가 찾고있는 것은 String1의 'Bob', String2의 David 및 String3의 문자열과 일치하는 것입니다. – user3649739