이것은 ... 바보 같은 질문이 될 수도 있지만 문장에서 각 단어에 대한 그룹을 만드는 방법은 무엇입니까?
은 같은 문장을 말해봐 :빠른 갈색 여우
또는 당신은 같은 문장을 얻을 수 있습니다 :
을게으른 개를 뛰어 넘은 빠른 여우
간단한 regexp (\ w *)는 첫 번째 단어 "The"를 찾아 그룹에 넣습니다.
첫 번째 문장의 경우 \ s * (\ w *) \ s * (\ w *) \ s * (\ w *) \ s * 자신의 그룹,하지만 그 문장의 단어의 수를 알고 있다고 가정합니다.
임의의 문장에있는 각 단어를 자체 그룹으로 묶는 정규 표현식을 작성할 수 있습니까? (? :(\ w *) \ s *) * 같은 것을 할 수 있으면 (\ w *)의 각 인스턴스를 그룹화 할 수 있으면 좋겠지 만 작동하지 않습니다.
파이썬에서이 작업을하고 있는데, 사용 사례가 "The quick brown fox"보다 조금 복잡하기 때문에 Regex가 한 줄에서이 작업을 수행 할 수 있다면 멋지 겠지만 가능하지 않다면 re.findall() 같은 것을 사용하여 모든 일치를 반복하는 것이 최선의 해결책이라고 가정합니다.
당신이 가진 통찰력에 감사드립니다.
편집 : 완성을 위해 여기에 내 실제 사용 사례가 있으며 어떻게 당신의 도움을 받아 해결 했습니까? 다시 한번 감사드립니다.
>>> s = '1 0 5 test1 5 test2 5 test3 5 test4 5 test5'
>>> s = re.match(r'^\d+\s\d+\s?(.*)', s).group(1)
>>> print s
5 test1 5 test2 5 test3 5 test4 5 test5
>>> list = re.findall(r'\d+\s(\w+)', s)
>>> print list
['test1', 'test2', 'test3', 'test4', 'test5']
재 모듈의 기능 findall은을 사용할 수 있습니다. 한 번에 모든 단어를 일치시키고 캡처 할 수 있는지 확신하지 못합니다. – Borealid
.NET은 일치하는 그룹에 의해 반복 캡처를 유지합니다. 지금까지 그 맛은 독특하다고 생각합니다. – polygenelubricants
알아두면 좋을 것, 나는 때때로 C#을 사용하고 그것을 염두에두고있을 것입니다. 해당 기능의 모든 문서에 대한 링크가 있습니까? – blah238