我正在匹配标识符,但现在遇到了一个问题:我的标识符允许包含Unicode字符。因此,以前的处理方式已经不足以满足需要:
t_IDENTIFIER = r"[A-Za-z](\.|[A-Za-z_0-9])*"
在我的标记语言解析器中,我通过允许除了我明确使用的字符以外的所有字符来匹配Unicode字符,因为我的标记语言中只有两三个我需要以这种方式转义的字符。
我该如何使用Python的正则表达式和PLY匹配所有Unicode字符?同时,这个想法是否可行?
我希望人们可以在程序中使用诸如 Ω » « ° foo² väli π 这样的标识符(变量名等)。该死!如果实际可行,我希望人们可以用自己的语言编写程序!无论如何,现在 Unicode 在广泛的地方都得到支持,应该会推广开来。
编辑:Python正则表达式似乎无法识别POSIX字符类。
>>> import re
>>> item = re.compile(r [[:word:]] )
>>> print item.match( e )
None
编辑:为了更好地解释我需要什么。我需要一个正则表达式-匹配所有Unicode可打印字符,但根本不匹配ASCII字符。
编辑:r"w"可以做我想要的一些事情,但它不匹配「」,我还需要一个不匹配数字的正则表达式。