标签: python
测试:
import re m = re.match(r'\d*[a-zA-z]+', '123abc_2_1_4') print(m.group())
我希望结果是'123abc',但它是'123abc_'。为什么还有一个额外的下划线?
PS。我在python 3.3.4和python 2.7.6(windows x64)
答案 0 :(得分:9)
正则表达式应为:
r'\d*[a-zA-Z]+' ^
如果您查看ASCII chart,您会在大写和小写字母之间看到许多标点符号,并且您将匹配它们以及字母。
答案 1 :(得分:4)
您使用的是A-z,而不是A-Z。这是一个更大的范围。
A-z
A-Z
这匹配从十六进制0x41到十六进制0x61的所有内容,包括_。
_
请参阅:http://www.asciitable.com/