Python是一个额外的下划线

时间:2014-02-22 02:20:30

标签: 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)

下测试

2 个答案:

答案 0 :(得分:9)

正则表达式应为:

r'\d*[a-zA-Z]+'
           ^

如果您查看ASCII chart,您会在大写和小写字母之间看到许多标点符号,并且您将匹配它们以及字母。

答案 1 :(得分:4)

您使用的是A-z,而不是A-Z。这是一个更大的范围。

这匹配从十六进制0x41到十六进制0x61的所有内容,包括_

请参阅:http://www.asciitable.com/