使用正则表达式模块的奇怪Python行为

时间:2016-02-10 21:30:49

标签: python regex

我一直在玩Matthew Barnett的improved regex module for Python,发现了一个奇怪的错误(行为?bug?)。 请考虑以下代码:

import regex as re
string = "liberty 123, equality 123, fraternity 123"
rx = r'\d+(?=,|$)'
results = re.findall(rx, string)
print (results)

从Mac上的命令行(python regex.py)调用时,我得到错误AttributeError: 'module' object has no attribute 'findall',而当我将完全相同的代码复制并粘贴到python shell时,它正确输出

['123', '123', '123']

有人可以请我吗?这是我在这里遗漏的一些显而易见的事情吗?

1 个答案:

答案 0 :(得分:3)

您不得将模块命名为与系统模块相同的名称。将文件regex.py重命名为其他内容,例如my_regex.py,然后删除文件regex.pyc(如果存在)。