我总是使用re模块做一些事情,比如re.match和re.sub,基本的东西,而且它总是对我很好。
突然间,我在尝试使用匹配和子等基本方法时遇到了AttributeError。
以下是我制作的一些示例代码:
import re
regex = '^[a-z]{3}'
r = re.match(regex, 'asd')
print r
这是堆栈跟踪:
Traceback (most recent call last):
File "te.py", line 4, in <module>
r = re.match(regex, 'asd')
AttributeError: module 're' has no attribute 'match'
我从未遇到过模块问题。我试过python 2.x和3,同样的错误。我不太了解进口是如何运作的,所以这可能是我的一个简单错误。
由于
答案 0 :(得分:1)
删除与re.py
文件位于同一目录中的te.py
文件。您在命名测试文件时提交了拼写错误。您的错误指出当前文件的名称为te.py
,并且由于键盘中的t
接近r
,这可能会解释所有内容。
为了证明我的好奇心,我在与te.py相同的目录中创建了一个空的re.py文件,该文件保存了您的代码。我得到了和你一样的错误。
答案 1 :(得分:0)
我的猜测是,您正在获得一些您不希望导入的re
模块。
也许试试这个:
import re
print re.__file__
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.pyc
看看你得到的结果是否明智。