组名不能以数字开头?

时间:2016-09-05 14:20:09

标签: python regex

看起来我不能像这样使用正则表达式,

(?P<74xxx>[0-9]+)

使用重新包装会引发错误,

sre_constants.error: bad character in group name u'74xxx'

看起来我不能使用以数字开头的组名,为什么?

P.S golang没有这样的问题,许多其他语言也是如此

2 个答案:

答案 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]+)'