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
分享到:
相关推荐
在本案例中,我们需要将Linux系统中的`yum`配置为使用Python 2.7.5版本。以下是详细步骤和相关知识点: 1. **检查当前Python版本** 首先,你需要确定当前系统的Python版本。在终端输入`python -V`或`python3 -V`,...
python-2.7.5安装包
4. **标准库增强**:Python的标准库在2.7.5版本中得到了扩展和增强,包括`datetime`模块的时间闰秒支持,`json`模块的性能提升,以及`urllib`和`urllib2`模块的改进等。 5. **多线程支持**:Python 2.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是Python编程语言的一个旧版本,主要在 CentOS 7.3 这样的Linux发行版上广泛使用。CentOS 7.3 是一个基于Red Hat Enterprise Linux (RHEL) 的稳定版操作系统,它为服务器环境提供了长期支持。在没有...
7. **版本兼容性**:尽管Python 2.7.5是一个旧版本,但它仍然支持许多流行库,但需要注意的是,随着时间的推移,越来越多的库会转向仅支持Python 3,因此在新项目中建议使用Python 3。 8. **升级与卸载**:如果之前...
Python 2.7.5是Python编程语言的一个重要版本,发布于2013年,是Python 2.x系列中的一个稳定版本。Python 2.x系列在2020年1月1日已经停止官方支持,但许多遗留系统和项目仍可能依赖这个版本。以下是对Python 2.7.5...
Python 2.7.5是Python编程语言的一个旧版本,发布于2013年,主要针对Windows操作系统。这个版本在当时是一个非常重要的更新,因为它包含了许多错误修复、性能优化和新功能。以下是对Python 2.7.5在Windows上安装过程...
标题中的"python-devel-2.7.5-68.el7.x86_64.rpm"和"python-2.7.5-68.el7.x86_64.rpm"是两个重要的软件包,它们与Python编程语言在Linux环境中的开发和运行紧密相关。这些文件是针对Red Hat Enterprise Linux 7 ...
这个特定的版本,"IronPython-2.7.5.zip",包含了IronPython 2.7.5的安装文件"IronPython-2.7.5.msi",这是一个Windows安装程序,用于在Microsoft Windows系统上部署IronPython环境。 IronPython的主要特性包括: ...
Python 2.7.5是Python 2.x系列的一个稳定版本,在2013年发布。尽管Python 3.x已经成为了官方推荐的最新版本,但仍有大量的遗留系统和项目依赖于Python 2.7,尤其是在那些不易升级或无法升级的环境中。 **Python ...
这个版本在Python的历史上占据着重要的地位,因为它在许多系统和应用中被广泛使用,尤其是在过渡到Python 3.x之前。以下是关于Python 2.7.5的一些关键知识点: 1. **语法基础**:Python 2.7.5遵循了Python 2系列的...
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 2.7.5的官方文档,内容涵盖新特性介绍、教程、库参考、语言参考、安装和使用指南、Python HOWTOs(一种针对特定主题的教程)、扩展和嵌入Python的方法、Python C API、安装和分发模块的指南...
标题中的“Python 2.7.5 for 小米路由器mini”表明这是一个针对小米路由器Mini设备的Python 2.7.5版本的软件包。在IT领域,Python是一种广泛使用的高级编程语言,以其简洁的语法和强大的功能而受到开发者喜爱。...
3. **标准库增强**:Python的标准库在2.7.5版本中得到了扩展,包括各种模块的更新和新功能的添加,如`ssl`模块,支持了安全套接层(SSL)和传输层安全(TLS)协议,增强了网络通信的安全性。 4. **错误修复**:...
Python 2.7.5 64位是一个重要的软件版本,尤其对于那些依赖于Python 2.x系列且需要处理大量数据或需要更高内存效率的用户来说。Python是一种高级编程语言,以其简洁、清晰的语法和强大的功能而闻名,广泛应用于Web...
标题中的 "python-devel-2.7.5-34.el7.x86_64.zip" 指的是一个针对Python 2.7.5版本的开发包,它特别适用于Red Hat Enterprise Linux 7 (RHEL 7)的64位体系结构。`el7` 表示这个包是为RHEL 7或与其兼容的系统(如...
Python的`subprocess`模块可以帮助你从Python脚本中调用Git命令,实现更复杂的版本控制操作。 为了在Python环境中使用Repo,你需要将Repo脚本放在系统的PATH中,或者将其所在目录添加到PATH。运行`repo init`初始化...
这个版本是 IronPython 的一个重要里程碑,提供了对 Python 2.7.5 版本的支持。在本文中,我们将深入探讨 IronPython 的工作原理、它如何实现 C# 和 Python 的互操作性,以及它在实际开发中的应用。 首先,Iron...