2014-01-23 126 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 

希望這是有幫助!