如何在Python 2.6中获得Python isidentifer()功能?

Dou*_*uto 16 python identifier python-2.6 python-3.x

Python 3有一个名为的字符串方法 str.isidentifier

我怎样才能在Python 2.6中获得类似的功能,而不是重写我自己的正则表达式等等?

Joh*_*ooy 14

tokenize模块定义名为Name的正则表达式

import re, tokenize, keyword
re.match(tokenize.Name + '$', somestr) and not keyword.iskeyword(somestr)
Run Code Online (Sandbox Code Playgroud)

  • 出于这些目的,您需要'^'+ tokenize.Name +'$'. (3认同)
  • @Douglas SJ De Couto - 您可以使用`import keyword`,`keyword.iskeyword(astring)`来检查字符串是否是关键字,请参阅其文档[here](http://docs.python.org/library/ keyword.html#keyword.iskeyword). (2认同)

Sil*_*ost 2

re.match(r'[a-z_]\w*$', s, re.I)
Run Code Online (Sandbox Code Playgroud)

应该做得很好。据我所知,没有任何内置方法。