python 在小于2.7.5版本中的 re模块出现 nothing to repeat 错误
在运行带正则python程序时,发生一个错误如下:
Traceback (most recent call last):
File "multi_views_statistics_9.10.py", line 80, in ?
retcode = re.match('^\+{2}\s+(.*)?\s+(?=\+{2})',line);
File "/usr/lib64/python2.4/sre.py", line 129, in match
return _compile(pattern, flags).match(string)
File "/usr/lib64/python2.4/sre.py", line 227, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat
想匹配的字符串是
发生错误的语句:retcode = re.match('^\+{2}\s+
(.*)?\s+(?=\+{2})',line);
问题定位过程中,发现可能是python的一bug,问题出在上述语句中粗体红色中,因为python模块re对“*”匹配处理异常导致语句执行失效,那么如何对
"*"等价呢,这个具体要看具体的需求是什么。
例如本程序中的我需匹配表格中 ”+“ 中间的单词,那么我的作法是:
.* 替换成
.[a-zA-z\s]*即可,所以对低版本(<2.7.5)python 模块re的处理中,"*" 可以使用以下规律匹配
*替换成 [你想匹配的正则表达式]*
综上所述,我的程序修正为:
原语句:
retcode = re.match('^\+{2}\s+(.*)?\s+(?=\+{2})',line);
新语句:
retcode = re.match('^\+{2}\s+(.[a-zA-z\s]*)?\s+(?=\+{2})',line);
希望对大家有所帮助
有价值参考资料:
http://stackoverflow.com/questions/3675144/regex-error-nothing-to-repeat
分享到:
相关推荐
python-2.7.5安装包
linux安装yum对应python2.7.5包
python-2.7.5-89.el7.x86_64.rpm python-devel-2.7.5-89.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm python-libs-2.7.5-89.el7.x86_64.rpm python-pycurl-7.19.0-19.el7.x86_64.rpm python-urlgrabber-...
全名:python-2.7.5.msi
python2.7.5
python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi; python-2.7.5.msi
python-devel-2.7.5-68.el7.x86_64.rpm python-2.7.5-68.el7.x86_64.rpm 搭配,从iso中取出,亲测可用
截止到2013.7.12的最新版,python2.7.5的64位版
python-2.7.5-90.el7.x86_64.rpm
全名:python-2.7.5-macosx10.3.dmg
Python-2.7.5.tgz安装包
全名:python-2.7.5.amd64.msi
python-2.7.5-89.el7.x86_64.rpm
终于在网上又找到个Python 2.7.5 64bit 可用版本,于是上传上来,希望对大家有用
完整的Python-2.7.5源码包,可以在VS2008中编译通过并生成安装文件。
Python2.7.5软件、python2.7.5技术文档合集打包下载,shell编辑IDLE窗口
python的官方文档集合,包含: What's new in Python ...Python HOWTOs Extending and Embedding Python_C API Installing Python Modules Distributing Python Modules FAQs 没有比这更好的python教程了吧o(∩_∩)o
python-2.7.5的安装程序,官网版本
centos7环境下离线安装python-devel需要的rpm文件,网站上下载最新的python-devel版本编译安装失败,从centos7的镜像里拷贝出来的低版本的rpm,测试安装成功。