项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

在所有介绍正则表达式元字符的资料中,都会提到\b,表示单词边界的意思。在python里写了一段小测试代码测试一下\b:

#!/usr/bin/env pythonimport redef t1():pattern = re.compile("\bprint\b")search = pattern.search('aaa print 123 hello')if search:print search.group(0)else:print "NO"t1()

运行此脚本以后,控制台华丽丽地输出一个大大的"NO",瞬间懵逼了。咋回事,难道我理解能力太差。又换了好多种自认为没问题的方式,都华丽丽地跟预期不对头。

经过长时间的google(百度你是查不出来滴骚年们),终于找到了问题所在。各位同学请先看代码:

#!/usr/bin/env pythonimport redef t2():pattern = re.compile(r"\bprint\b")search = pattern.search('aaa print 123 hello')if search:print "YES"print search.group(0)else:print "NO"t2()

各位看官看出区别来了么。没错,就"\bprint\b"前头多了个"r"。为什么会酱紫呢。

这是python字符串与正则表达式最糟糕,没有之一的冲突。在python字符串中,"b"是反斜杠字符,ASCII值是8。如果你没有使用 raw 字符串时,那么 Python 将会把 “\b” 转换成一个回退符,你的 RE 将无法象你希望的那样匹配它了。
  所以同学们,在使用python做正则的时候,当你想使用\b元字符的时候,一定得注意咯。怎么做,不用我再说了吧。
  为了解决这个问题,花了大概得有一个半小时查资料。所以虽然时间已经很晚了,还是赶紧记下来再睡觉,心里才踏实。

python 正则表达式 \b 大坑相关推荐

  1. Python 正则表达式各种特殊符号 重点

    Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. r ...

  2. python 正则表达式 re.compile() 的使用

    1 re.compile() 的解释: python 正则表达式 re.compile() 将正则表达式编译成一个Pattern规则对象,单独使用compile 没有意义,他生成的是一个规则,需要ma ...

  3. Python正则表达式,看这一篇就够了

    作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...

  4. Python 正则表达式

    最近研究Python爬虫,很多地方用到了正则表达式,但是没好好研究,每次都得现查文档.今天就专门看看Python正则表达式.本文参考了官方文档 re模块. 模式 首先正则表达式的语法我就不说了,这玩意 ...

  5. Python正则表达式初识(二)

    前几天给大家分享了[Python正则表达式初识(一)],介绍了正则表达式中的三个特殊字符"^"."."和"*",感兴趣的伙伴可以戳进去看看, ...

  6. python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单

    处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...

  7. python正则表达式re.sub用法

    python正则表达式re.sub用法 https://cloud.tencent.com/developer/article/1382055 python正则表达式re.sub用法 全面的 http ...

  8. 【Python】一文读懂Python正则表达式常用用法

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 编辑:爱学AI 来源:geekvi   链接: www.segmentfault.co ...

  9. Python正则表达式常用的15个符号整理

    http://blog.itpub.net/31403259/viewspace-2157778/ Python正则表达式常用的15个符号整理: 1. ? 匹配0次或一次前面的分组(问号在正则表达式中 ...

  10. Python正则表达式使用的四个基本步骤

    http://blog.itpub.net/31403259/viewspace-2157701/ Python正则表达式使用的四个基本步骤     1.用import re导入正则表达式模块     ...

最新文章

  1. 无法加载安装程序库 wbemupgd.dll
  2. MySQL中有外键时数据表的删除方法
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的医院管理系统
  4. dspq值多少最好_蜂蜜纯度42的意思?蜂蜜纯度多少度好?
  5. 链表 -- 2.2.1 Add Two Numbers -- 图解
  6. 26 JavaScript模块
  7. 计算机毕业设计的读书笔记,毕业设计之读书笔记
  8. J-Link软件和文档包的版本发行说明(1)[V3.00d ~ V4.94j版本]
  9. 及时复盘的好处_及时复盘,促进成长
  10. 支付宝小程序开发+java服务
  11. 综述:根际微生物组提高植物耐盐性的研究进展
  12. 信息安全——密码学(上)
  13. 46招健脑秘笈,让你变得更聪明
  14. 计算机平面设计评分标准,竞赛各专业评分标准.DOC
  15. 树莓派软路由Openwrt
  16. Android 的四大组件
  17. (艾迪茉莉转圈圈~~找最小环)Circular Sequence UVA - 1584
  18. android扫码支付宝ofo,六大共享单车接入支付宝 ofo 等免押金扫一扫可骑走
  19. 随机获取小区/酒店名称
  20. 免费无限次的API 接口

热门文章

  1. Linux安装Nginx1.7.4、php5.5.15和配置
  2. Xcode设置苹果应用的app icon和launch image(应用图标和启动页面)
  3. net2.0如何修改用户密码的解决
  4. Java中的String的长度限制问题
  5. cmd启动某个server卡住解决办法
  6. Windows Azure Virtual Machine (33) Azure虚拟机删除重建
  7. 【深入理解webpack】library,libraryTarget,externals的区别及作用
  8. NA-NP-IE系列实验2
  9. Linux中利用NFS实现飞鸽传书
  10. mysql 大事物commit慢造成全库堵塞问题