Это может быть глупый вопрос, но ...
Скажем, у вас есть предложение вроде:
Быстрая коричневая лиса
Или вы можете получить предложение вроде:
Быстрая коричневая лиса перепрыгнула через ленивую собаку
Простое регулярное выражение (\ w *) находит первое слово «The» и помещает его в группу.
В первом предложении вы можете написать (\ w *) \ s * (\ w *) \ s * (\ w *) \ s * (\ w *) \ s *, чтобы каждое слово имело свое группа, но это предполагает, что вы знаете количество слов в предложении.
Можно ли написать регулярное выражение, которое помещает каждое слово в любом произвольном предложении в свою группу? Было бы неплохо, если бы вы могли сделать что-то вроде (?: (\ W *) \ s *) *, чтобы он группировал каждый экземпляр (\ w *), но это не работает.
Я делаю это в Python, и мой сценарий использования, очевидно, немного сложнее, чем "Быстрый коричневый лис", поэтому было бы неплохо, если бы 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']