3

我想在“foo”开头和结尾没有任何小写、大写字符、数字或下划线的句子中找到“foo”。

例如,在".foo bar (foo) bar foo-bar foo_bar foo'bar bar-foo bar, foo."我想找到".foo ", "(foo)", " foo-", " foo'", "-foo ", " foo.".

我试图通过使用这个正则表达式来解决这个问题"(?![a-zA-Z0-9_])foo(?![a-zA-Z0-9_])":但它没有用。

4

1 回答 1

5

^在字符类的开头使用:

>>> strs = ".foo bar (foo) bar foo-bar foo_bar foo'bar bar-foo bar, foo."
>>> re.findall('[^\w+]foo[^\w+]', strs)
['.foo ', '(foo)', ' foo-', " foo'", '-foo ', ' foo.']
于 2013-08-08T16:32:13.090 回答