регулярное выражение, захватывающее несколько слов между двумя выбранными словами python - PullRequest
0 голосов
/ 27 мая 2020

Я новичок в регулярных выражениях и не могу понять, что делаю неправильно.

У меня разные твиты о женщинах, и я пытаюсь записать предложения, содержащие слова.

Пример текста: all women should be earning less within the workplace if you ask me

и я пытаюсь захватите women should be earning less within the workplace и пробовали несколько шаблонов регулярных выражений, включая:

women(\w+\W+\s*\S*)workplace
women(\w+\W+\s*\S*){2,}workplace
\bwomen(\w+\W+\s*\S*){2,}workplace\b

Насколько я понимаю, этот код должен захватывать неограниченное количество символов слов, пробелов или непробельных символов как минимум дважды или больше. Я также использовал граничную привязку, чтобы проверить, сработает ли это, но это не так.

Однако я не получил никаких совпадений для этого вообще. Может кто-нибудь объяснить, что я делаю не так, пожалуйста.

Спасибо.

1 Ответ

4 голосов
/ 27 мая 2020

Если вы пытаетесь зафиксировать все, что находится между двумя ключевыми словами, попробуйте что-то вроде:

\bwomen\b.*\bworkplace\b

Чтобы захватить все предложение, содержащее два ключевых слова, используйте что-то вроде:

\b[^.?!]*?\bwomen\b.*?\bworkplace\b[^.?!]*\b

Предполагается, что предложения разделены ., ? или !. Он также будет неправильно определять пунктуацию в аббревиатурах, таких как Ms., как границы предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...