3

我需要一些关于字符串正则表达式匹配句子中的单词的帮助,以考虑标点符号和行尾。我的尝试在行尾情况下失败了。

以下示例根据我的需要进行评估:

>>> print bool(re.search('test[^a-z]','test!'.lower()))
True
>>> print bool(re.search('test[^a-z]','test aaa'.lower()))
True
>>> print bool(re.search('test[^a-z]','testaaa'.lower()))
False

然而,行尾案例评估False

>>> print bool(re.search('test[^a-z]','test'.lower()))
False

行尾字符$不在集合中a-z,所以我认为这种情况也会评估True。我该如何处理regex

4

1 回答 1

9

您可以使用负前瞻

'test(?![a-z])'

交替

'test([^a-z]|$)'
于 2012-10-31T13:46:59.557 回答