首先,要想得到想要的空格,将\s*替换为\s*?,使其非贪心。在

第一个修复:>>> re.compile(r'(((iphone|games|mac)\s*?)+)', re.I).sub(r'\1', sentence)

'I love downloading iPhone games from my mac.'

不幸的是,一旦\s*是非贪心的,它就会拆分短语,如您所见。没有它,它是这样的,将两者组合在一起:

^{pr2}$

我还不知道怎么解决这个问题。在

还要注意的是,我在+的旁边加了一组括号,这样所有的匹配都会被捕捉到-这就是区别。在

进一步更新:事实上,我可以想出一个办法来避开它。你决定你是否想要那样。在>>> regex = re.compile(r'((iphone|games|mac)(\s*(iphone|games|mac))*)', re.I)

>>> regex.sub(r'\1', sentence)

'I love downloading iPhone games from my mac.'

更新:考虑到您关于单词边界的观点,我们只需要添加单词边界匹配器\b的几个实例。在>>> regex = re.compile(r'(\b(iphone|games|mac)\b(\s*(iphone|games|mac)\b)*)', re.I)

>>> regex.sub(r'\1', 'I love downloading iPhone games from my mac')

'I love downloading iPhone games from my mac'

>>> regex.sub(r'\1', 'I love downloading iPhone gameses from my mac')

'I love downloading iPhone gameses from my mac'

>>> regex.sub(r'\1', 'I love downloading iPhoney games from my mac')

'I love downloading iPhoney games from my mac'

>>> regex.sub(r'\1', 'I love downloading iPhoney gameses from my mac')

'I love downloading iPhoney gameses from my mac'

>>> regex.sub(r'\1', 'I love downloading miPhone gameses from my mac')

'I love downloading miPhone gameses from my mac'

>>> regex.sub(r'\1', 'I love downloading miPhone games from my mac')

'I love downloading miPhone games from my mac'

>>> regex.sub(r'\1', 'I love downloading iPhone igames from my mac')

'I love downloading iPhone igames from my mac'

sub在python中的意义_在python中,如何使用回复sub?相关推荐

  1. python出现的意义_[转]Python中下划线以及命名空间的意义

    Python 用下划线作为变量前缀和后缀指定特殊变量/方法. 主要存在四种情形 1. 1. object # public 2. __object__ # special, python system ...

  2. python如何隐藏密码_在python脚本中隐藏密码(仅限不安全的混淆)

    Base64编码是在标准库中,并将停止肩膀冲浪者: >>> import base64 >>> print base64.b64encode("passw ...

  3. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)

    下面就为大家分享一篇使用Python将数组的元素导出到变量中(unpacking),具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 最近工作中遇到一个问题,需要利用Python将数组(list ...

  4. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  5. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

  6. python集合的概念_用Python中的集合Set讲解演示高一数学集合的概念

    数学编程不分家,用Python可以方便的表示高中数学知识.现在以集合为例进行讲解,高一数学设计集的概念,讲解了交并补的相关知识,用Python中的集合类型可以方便的表示.同时可以借助数学知识更好的理解 ...

  7. python字符串去掉空行_从python中的字符串中删除空格

    python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...

  8. python gil锁存在的意义_对于Python的GIL锁理解

    GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可 ...

  9. python怎么更新数据库_在Python的Django框架中更新数据库数据的方法

    先使用一些关键参数创建对象实例,如下: >>> p = Publisher(name='Apress', ... address='2855 Telegraph Ave.', ... ...

最新文章

  1. 马歇尔计划软件测试自学,绝密本科目考试启用前及综合应用.doc
  2. Flutter开发之MVC设计模式:新建文件与导入文件(八)
  3. shell公共函数:/etc/init.d/functions
  4. 大火系列: Rust入门篇 mut
  5. Git之深入解析如何交互式暂存
  6. 数据库-分组语句及用法
  7. 类和对象运行时在内存里是怎么样的?各种变量、方法在运行时是怎么交互的?
  8. 或许你不知道的10条SQL技巧(转自58沈剑原创)
  9. 程序员如何探索新技术
  10. ASP.NET MVC2用户界面的巨大改变
  11. 以软件开发周期来说明不同的测试的使用情况
  12. o蓝屏之死---stop:0X000000c5(0x000000c4等系列)---Mr.Zhang
  13. linux redis命令客户端,Redis客户端
  14. rk3568 LTE(N720)
  15. IDEA部署web项目Warning:No artifacts configured.
  16. Python入门的学习心得
  17. python 二项分布
  18. Ubuntu18.04安装redmine+mysql+nginx+Passenger
  19. SimpleDateFormat和DateFormat的基本使用(format和prase)
  20. day56 JavaScript

热门文章

  1. 语言 上课点名 缺勤_主播日记5 | “云端”传递的C语言程序设计实验课
  2. php i o优化,PHP之高性能I/O框架:Libevent(一)
  3. camerax 自动聚焦_Android实现手机摄像头的自动对焦
  4. python turtle基本语法_Python 基础语法-turtle篇
  5. 海康威视智能机器人泊车_干货|海康威视智能停车场管理系统(含技术指导手册+施工图)...
  6. 为什么说 Java 中只有值传递?
  7. tomcat的jsp页面超过65535,导致500报错
  8. HttpClient 如何设置超时时间
  9. java 生成 防伪码,C#生成防伪码的思路及源码分享
  10. js 生成二维码_QRcode.js 生成二维码