简单的正则表达式匹配包含某个单词的字符串

时间:2013-05-30 21:17:35

标签: python regex

我正在尝试匹配包含单词的文字(让我们说'单词')。我正在使用以下正则表达式:

r = re.compile(r'\bword\b')

当我尝试这个正则表达式时,我得到以下结果:

r.match('a word a') > None
r.match(' word ') > None

r.match('word') > match

不应该所有三个字符串匹配吗?

1 个答案:

答案 0 :(得分:2)

来自docs

  

re.search(pattern,string,flags = 0)扫描字符串寻找a   正则表达式模式生成匹配的位置,和   返回相应的MatchObject实例。如果没有,则返回None   字符串中的位置与模式匹配;请注意这是   不同于在某个点找到零长度匹配   字符串。

     

re.match(pattern,string,flags = 0)如果是零个或多个字符   字符串的开头匹配正则表达式模式,返回一个   相应的MatchObject实例。如果字符串没有,则返回None   匹配模式;请注意,这与零长度不同   匹配。

     

请注意,即使在MULTILINE模式下,re.match()也仅匹配   字符串的开头而不是每行的开头。

     

如果您想在字符串中的任何位置找到匹配项,请使用search()代替

所以,只要做r.search(...)就可以得到你想要的东西。