用于匹配整个单词和几个单词的正则表达式

问题描述 投票:0回答:0

我有这些话:

FALSE_POSITIVE_TEXT_TERMS = {"single", "several words"}

我需要一个正则表达式同时:

(a) 提取一个完整的单词(例如“single”SHOULD被匹配)
(b) 忽略整个单词的一部分(例如,“sing”应该NOT匹配,因为它是“single”单词的一部分)
(b) 提取几个词的表达(例如“几个词”SHOULD被匹配)
(c) 如果这些词不是该表达式的一部分,则从词表达式中忽略这些词(例如,“several”应该NOT匹配,因为在这种情况下它不是“several words”的一部分)

换句话说,我的pytest应该通过:

FALSE_POSITIVE_TEXT_TERMS = {"single", "several words"}

(a) ("Single word example", 'Single'),
(b) ("I like to sing", None),
(c) ("Several words example", 'Several words'),
(d) ("Several apples", None),

我的代码:

re.compile( r"\b(" + "|".join(FALSE_POSITIVE_TEXT_TERMS) + r")\b", re.IGNORECASE )

现在仅适用于 (a) 和 (b) 情况。

regex
© www.soinside.com 2019 - 2024. All rights reserved.