正则表达式:从单词列表中计算匹配

时间:2012-02-09 14:30:33

标签: regex list count word

我正在尝试使用正确的语法来获取单词列表中的匹配数 例如:

列表:(美国,英国,希腊,德国,尼日利亚,巴西)

文字是:“蛋糕回归将巴西欢迎堆栈放在段落阿根廷溢出英国”

之间

我想知道上面列表中有多少单词出现在本文中,带有正则表达式模式。 另外,我想知道文本中列表中是否有多于1个匹配

是否可以使用Regex进行此操作?

1 个答案:

答案 0 :(得分:2)

在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)