如何在python中检查字符串格式?

时间:2011-12-08 18:57:13

标签: python regex

我想检查字符串“tDDDDD”,其中D必须是数字,且不应超过它的长度(最小4,最大5)。

不允许使用其他字符。

目前我的代码检查如下,

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

但也允许t12345anythingafterit。

我将正则表达式更改为

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

这是正确的还是任何聪明的方式?

4 个答案:

答案 0 :(得分:7)

您的正则表达式可以使用,但您也可以使用此正则表达式:

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

{4,5}是一个量词,表示前一个令牌必须发生4至5次。

如果您希望捕获字符串的匹配部分,则仅需要括号。

答案 1 :(得分:2)

这个正则表达式如何:

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

答案 2 :(得分:1)

尝试使用正则表达式re.findall('^(t\d{4,5})', "t1234")

^(t\d{4,5})
  

{m,n}匹配前面RE的m到n次重复。

由于你说这里的数字是4分钟,最多5分,m = 4& N = 5。

答案 3 :(得分: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) 
[]