2016-10-26 1 views
0

: 및 wordb1 wordb2 ... wordbn정규 표현식이 아닌 욕심 단어 캡처

wordan

worda1의 worda2 ... ... 리터럴이 아니지만 다른 단어도있을 수 있음을 의미합니다. 그리고 그 말은 '와'이외의 다른 것일 수 있습니다.

내가 촬영하려는

wordb1의 wordb2의 wordbn

문제는 내가 지금까지 작성한 정규식의 함께

는 내가하는 다음, w \ 사용한 적이 있다는 것입니다 'and'와 일치하고 탐욕스러운 포획을 가져옵니다. Lookahead와 Lookbehind는 캡처해야하는 임의의 단어 수 때문에 작동하지 않습니다.

편집 :

모든 사람들이 공원에 가서 아무도

캡처해야 집에 남아 있지되었다 :

아무도 집

에서 왼쪽되지 않았다 여기에 예입니다

정규 표현식은 phr을 하드 코딩 할 수 없습니다. ase는 "아무도 집에 남지 않았습니다"라고 말합니다. "and"이외의 임의의 단어 순서를 캡처해야하기 때문입니다.

그것은 아침이었다 모두가 공원에 가서 아무도 캡처 안 집

에서 왼쪽되지 않았다 :

더 좋은 집

에서 왼쪽 된

아무도

큰 그림은 ' d는 오른쪽에서부터 시작하여 첫 번째 "and"까지 캡처하는 것뿐입니다.

이렇게하려면 몇 가지 코드를 작성할 수 있지만이를 수행하는 정규식이 있는지 궁금합니다.

저는 파이썬을 다시 사용하지만 다른 정규 표현식을 사용할 수 있습니다.

도움 주셔서 감사합니다.

+0

아직 확실하지 않은 질문이 있습니다. 찾고있는 정규 표현식은 두 번째 '및'이후의 모든 단어를 캡처하는 것처럼 간단 할 수 있습니까? 그렇지 않다면, 당신이하고있는 일을 더 설명 할 수 있습니까? –

+1

요구 사항을 공식화 할 수 있습니까? 연속적으로 증가하는 숫자 접미어를 가진 연속 단어를 일치 시킵니까? 그렇다면 정규식이 도움이되지 않습니다. –

+0

'word \ d * '를 사용할 수있는 리터럴 문자열이라면'word'가 무엇을 의미합니까? –

답변

0

이 그것을 수행해야합니다

이 전체 라인을 일치
/(?:.* and)?(.+)/ 

참고하지만, 당신이 원하는 캡처 경기 될 부분이다. 작업 예제는 here입니다.

하지만 몇 가지주의 사항이 있습니다

  1. 이 한 줄에 한 문장이 있다고 가정합니다.
  2. 'and'라는 단어가 없으면 전체 행과 일치합니다. 아마 그것은 당신이 원하는 것입니다.
  3. 이 줄의 맨 처음 단어가 'and'가 아니라고 가정합니다.
  4. 이것은 또한 행의 마지막 단어가 'and'가 아니라고 가정합니다.
+0

정말 대단합니다 - 고마워요! – user3750352