python正则表达式找到" cat"但不是"鲶鱼"或者" caterpillar"等

时间:2015-03-03 03:02:28

标签: python regex

我对正则表达式并不习惯,而且我在创建一个会发现" cat"字符串中的任何地方跟随(或不跟)任何标点,但不是" caterpillar"," catfish"等。

1 个答案:

答案 0 :(得分:2)

在Python正则表达式中,\b是一个单词边界,因此您可以搜索cat\b(虽然这样也可以选择bobcattomcat这样的内容,这样您就可以如果你不想要那些,我们需要使用\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的字符串文字兼容。