Regex: подсчет совпадений из списка слов - PullRequest
2 голосов
/ 09 февраля 2012

Я пытаюсь получить правильный синтаксис для получения количества совпадений из списка слов пример:

Список: (США, Великобритания, Греция, Германия, Нигерия, Бразилия)

Текст таков: «Возвращение торта ставит Бразилию с приветственным стеком между параграфами Argentina Overflow UK»

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

Возможно ли это сделать с помощью Regex?

1 Ответ

2 голосов
/ 09 февраля 2012

В Python:

>>> import re
>>> countries = re.compile(r"\b(?:US|UK|Greece|Germany|Nigeria|Brazil)\b")
>>> text = "Cake returns put Brazil Welcome Stack to between paragraphs Argentina Overflow UK"
>>> len(countries.findall(text))
2

Пояснение:

\b      # Word boundary (start of word)
(?:     # Match either...
 US     # US
|       # or
 UK     # UK
|       # or
 Greece # Greece (etc.)
)       # End of alternation
\b      # Word boundary (end of word)
...