我对正则表达式并不习惯,而且我在创建一个会发现" cat"字符串中的任何地方跟随(或不跟)任何标点,但不是" caterpillar"," catfish"等。
答案 0 :(得分:2)
在Python正则表达式中,\b
是一个单词边界,因此您可以搜索cat\b
(虽然这样也可以选择bobcat
或tomcat
这样的内容,这样您就可以如果你不想要那些,我们需要使用\bcat\b
。
来自Python 3.4 docs(虽然2.7是very similar):
\ b - 匹配空字符串,但仅匹配单词的开头或结尾。
单词被定义为Unicode字母数字或下划线字符的序列,因此单词的结尾由空格或非字母数字,非下划线的Unicode字符表示。
注意,正式地,\ b被定义为\ w和\ W字符之间的边界(反之亦然),或者在\ w和字符串的开头/结尾之间。这意味着r' \ bfoo \ b'匹配' foo',' foo。','(foo)',' bar foo baz'但不是' foobar'或者' foo3'。
默认使用Unicode字母数字,但可以使用ASCII标志更改。在字符范围内,\ b表示退格符,以便与Python的字符串文字兼容。