看起来我不能像这样使用正则表达式,
(?P<74xxx>[0-9]+)
使用重新包装会引发错误,
sre_constants.error: bad character in group name u'74xxx'
看起来我不能使用以数字开头的组名,为什么?
P.S golang没有这样的问题,许多其他语言也是如此
答案 0 :(得分:2)
鉴于doc:
组名必须是有效的Python标识符
作为变量,标识符不能以Python中的数字开头。详细了解标识符here:
identifier ::= (letter|"_") (letter | digit | "_")*
letter ::= lowercase | uppercase
lowercase ::= "a"..."z"
uppercase ::= "A"..."Z"
digit ::= "0"..."9"
答案 1 :(得分:-2)
如果这是您正在搜索的模式r'(?P<74xxx>[0-9]+)'
,并且您希望在搜索模式中包含?
,那么您必须在其中添加\
,因为它是python中的特殊字符。因此,您的搜索模式应为r'(\?P<74xxx>[0-9]+)'
。