我想检查字符串“tDDDDD”,其中D必须是数字,且不应超过它的长度(最小4,最大5)。
不允许使用其他字符。
目前我的代码检查如下,
m = re.match('^(t)(\d+)', changectx.branch())
但也允许t12345anythingafterit。
我将正则表达式更改为
'^(t)(\d\d\d\d)(\d)?$'
这是正确的还是任何聪明的方式?
答案 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)
[]