2011-12-08 18 views
3

我想檢查字符串「tDDDDD」,其中D必須是數字,不應超過它的長度(最小4,最大5)。如何檢查python中的字符串格式?

不允許其他字符。

目前我的代碼檢查這樣的,

m = re.match('^(t)(\d+)', changectx.branch()) 

但也允許t12345anythingafterit。

我改變了正則表達式

'^(t)(\d\d\d\d)(\d)?$' 

這是正確的或做的任何聰明的辦法?

回答

7

你的正則表達式的工作,但你也可以使用正則表達式:

r'^t\d{4,5}$' 

{4,5}是一個量詞,這意味着前面的標識必須在4到5次發生。

如果您希望捕獲字符串的匹配部分,則只需在此處使用括號。

2

這個怎麼樣的正則表達式:

r'^t\d{4,5}$' 
1

嘗試re.findall('^(t\d{4,5})', "t1234")其中正則表達式 - ^(t\d{4,5})

{M,N}從米匹配前述RE的n個重複。

既然你說的數字是最小4和最大5這裏,m = 4 & n = 5。

1

試試這個

>>> x="t12345anythingafterit." 
>>> re.findall("^t\d{4,5}$",x) 
[] 
>>> x="t12345" 
>>> re.findall("^t\d{4,5}$",x) 
['t12345'] 
>>> x="t1234" 
>>> re.findall("^t\d{4,5}$",x) 
['t1234'] 
>>> x="t123" 
>>> re.findall("^t\d{4,5}$",x) 
[]