如何使用正则表达式的单词

时间:2013-05-29 15:40:35

标签: python regex

我正在尝试使用简单的正则表达式代码来匹配以下内容:

line = 'blah black blacksheep blah' 
if re.match(r'(\bblack\b)', line):
    print 'found it!

我做错了什么,我自己找不到“黑”?

4 个答案:

答案 0 :(得分:5)

来自the docs

  

re.match(pattern, string, flags=0)

     

如果 string 开头的零个或多个字符与正则表达式 pattern 匹配,则返回相应的MatchObject实例。

您可能希望改为使用re.searchre.findall

答案 1 :(得分:3)

您应该在这里使用re.searchre.findall

>>> strs = 'blah black blacksheep blah'
>>> re.search(r'\bblack\b', strs).group(0)
'black'

>>> re.findall(r'\bblack\b', strs)
['black']

答案 2 :(得分:1)

您希望re.search代替re.match。来自docs

  

<强> 7.2.5.3。 search()vs. match()

     

Python提供了两种基于常规的基本操作   表达式:re.match()仅在开头检查匹配项   字符串,而re.search()检查匹配中的任何位置   string(这是Perl默认执行的操作)。

答案 3 :(得分:0)

使用re.search()(如果整个字符串不匹配,则返回None):

line = 'blah black blacksheep blah' 
if re.search(r'(\bblack\b)', line):
    print 'found it!