2016-08-11 63 views
1
pattern=''' 

^      #beginning of string 

M{0,3}    # thousands- 0 to 3 MS 

(CM|CD|D?C{0,3})    # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 Cs), or 500-800 (D, followed by 0 to 3 Cs) 

(XC|XL|L?X{0,3})    # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 Xs), or 50-80 (L, followed by 0 to 3 Xs) 

(IX|IV|V?I{0,3})    # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 Is), or 5-8 (V, followed by 0 to 3 Is) 

$                   #end of string 
''' 

根據diveintopython3網站和我的邏輯,re.search(pattern,'M',re.VERBOSE)應該返回字符串匹配,但我沒有返回時我輸入call re.search。爲什麼是這樣?爲什麼不是這個正則表達式工作?它應該基於diveintopython3

回答

0

它正常工作對我來說:

romanstring = "M" 
m = re.search(pattern, romanstring, re.VERBOSE) 
print(m.string) 

也許你是困惑,因爲re.search返回一個「匹配對象」,而不是匹配的字符串直接返回。

+0

當我調用re.search時,雖然沒有返回。甚至沒有匹配對象 – HSCoder

+0

如果輸入字符串不匹配正則表達式,它將返回None。但是,當我複製粘貼你提供的代碼時,它工作得很好,無論是在Python3還是Python2中。 – hugomg

+0

我認爲我的python存在問題 – HSCoder

相關問題