0

以下に一致する単純な正規表現コードを試していました。

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

私は何を間違っていますか、それ自体で「黒」を見つけることができませんか?

4

4 に答える 4

4

ドキュメントから:

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

stringの先頭の 0 個以上の文字が正規表現patternMatchObjectに一致する場合、対応するインスタンスを返します。

代わりにre.searchorを使用することをお勧めします。re.findall

于 2013-05-29T15:43:19.600 に答える
2

re.searchまたはre.findallここで使用する必要があります:

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

>>> re.findall(r'\bblack\b', strs)
['black']
于 2013-05-29T15:43:31.753 に答える
1

代わりre.searchre.match. ドキュメントから:

7.2.5.3. search() と match()

Python は、正規表現に基づいた 2 つの異なるプリミティブ操作を提供します:re.match()文字列の先頭でのみ一致をre.search()チェックし、文字列内の任意の場所で一致をチェックします (これは Perl がデフォルトで行うことです)。

于 2013-05-29T15:43:59.027 に答える
0

使用re.search()(文字列全体で一致しない場合は None を返します):

line = 'blah black blacksheep blah' 
if re.search(r'(\bblack\b)', line):
    print 'found it!
于 2013-05-29T16:11:17.133 に答える