2014-01-23 95 views
0

这里是我的代码条:括号蟒蛇rgex

import re 

prog2 = re.compile(r'\[\w\]') 
activity = "[CS150]" 
if prog2.match(activity): 
    print 'matched' 
else: 
    print 'unmatched' 

我不知道为什么它打印无法比拟的,因为我说的格局很好,我认为并做了右输入。

回答

1

你需要匹配多个字符:

prog2 = re.compile(r'\[\w+\]') 

注意+量词。没有它,\w字符类将匹配只是一个性格,有了它,图案至少一个字符匹配。

演示:

>>> import re 
>>> prog2 = re.compile(r'\[\w+\]') 
>>> activity = "[CS150]" 
>>> prog2.match(activity) 
<_sre.SRE_Match object at 0x106b2f6b0> 
+0

你打败了我,但这场战争尚未结束! :) –

+0

@ user3226156:没有,'\ w'不*不*包含空格。 '\ w'只包括字母,数字和下划线。你可以匹配'[\ w] +'来匹配单词字符和空格。 –

+0

是的,我刚刚意识到它。但是我怎样才能给\ w增加一个空间,我不在乎空间的位置。 – Rowel

0

你必须在你的正则表达式的末尾添加*。否则,它会匹配单个字符。

0

下面这给了预期的结果

import re 
prog2 = re.compile(r'\[\w+\]') 
activity = "[CS150]" 
if prog2.match(activity): 
    print ('matched') 
else: 
    print ('unmatched') 

>>matched 

希望这是有帮助!