书上讲的很储蓄,开始没有弄太明白。如果不弄明白,用的时候会非常苦恼。基于此,除了多多理解书本内容,又做了大量实践,总算有点明白了,在此记录一下。一来自己方便查看,二来希望看到此文章的同仁,也能多一点对\b\B的理解。

\b,\B是单词边界,不匹配任何实际字符,所以是看不到的;\B是\b的非(补)。

\b:表示字母数字与非字母数字的边界,     非字母数字与字母数字的边界。

\B:表示字母数字与(非非)字母数字的边界,非字母数字与非字母数字的边界。

看下面实例:

import re #首先加载re模块。
re.split('123\\b','==123!! abc123. 123. 123abc. 123') #结果如下:

箭头所指的地方就是分隔边界,都是数字与非字母数字的边界;同时看到'123abc'没有被分隔,符合\b的意思。

re.split('123\\b','==123!! abc123. 123\tabc 123')

箭头所指的地方就是分隔边界,'123\tabc'被分隔,这里的'\t'是tab键(非字母数字)。

re.split('\\b123\\b','123 ==123!! abc123.123.123abc.123')

可以看到是四对分隔边界,分别对应123前后的\b。

re.split('\\b123=\\b','==123!! abc123,123,123=abc,123')

可以看到只有一对(一处)分隔边界,前面箭头表示非字母数字与数字的边界,后面箭头表示非字母数字与字母的边界。

re.split('\\b123a\\b','==123!! abc123,123,123a\nbc,123')

可以看到只有一对(一处)分隔边界,前面箭头表示非字母数字与数字的边界,后面箭头表示字母与非字母数字的边界。

re.split('\\b123=\\b','==123!! abc123,123,123==abc,123')

可以看到字符串没有被分隔,是因为箭头处的边界表示非字母数字与非字母数字的边界,不是\b的意思。

下面说一下\B。

re.split(r'pyc\B','1pycthon py5 2pyc342 pyc1py2py4 pyp3 3pyc# pyc')

可以看到有三个分隔边界,都是字母与字母数字的边界,'3pyc#','pyc'没有被分隔,是因为字母与非字母数字的边界。

re.split(r'py=\B','1py=cthon py5 2py=342 py==1py2py4 pyp3 3py= pyabc')

箭头处是分隔边界,表示非字母数字与非字母数字的边界,'1py=cthon','2py=342'没有被分隔,是因为非字母数字与字母数字的边界。

把上面介绍\b时没有被分隔的例子,修改一下:

re.split('\\b123=\\B','==123!! abc123,123,123==abc,123')

有一对(一处)分隔边界,前面箭头处表示非字母数字与数字的边界,后面箭头处表示非字母数字与非字母数字的边界。都符合\b,\B的意思。

到这里希望你能对\b,\B有一点更深入的理解。

正则表达式里\b和\B,Python实例相关推荐

  1. python数据写入表格生成图片_python在word文档里插入图片和表格实例代码演示

    # -*- coding: UTF8 -*- from docx import Document from docx.shared import Pt doc = Document() # 文件存储路 ...

  2. Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释

    Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释 import reclass RegexUtils:'''正则表达式工具类'''def __init__(self ...

  3. python字符串大写字母个数_【python实例】统计字符串里大写字母,小写字母的个数和非字母的个数...

    """ 给定一个以下字符串:统计大写字母的个数,小写字母的个数,非字母的个数. str1 = "ajdkkKDKEK1343KFKiriromfkfKKRIOW ...

  4. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)

    就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则:该 ...

  5. python程序应用经典实例-Python实例应用经典讲解

    Python作为一种功能强大的脚本语言,给开发人员带来了非常大的好处.那么它的具体应用方式又是怎样的呢?我们今天就可以通过一个经典的Python实例应用来详细分析一下这一语言的具体应用方式. Pyth ...

  6. Python实例讲解 -- 磁盘文件的操作

    在文件夹里有六十多个RM格式的视频文件,我现在需要把它们的文件名都提取出来,并去掉文件的扩展名,以便放到需要的网页里. 应该有什么软件可以完成这个简单的要求,可是一时间到哪里去找这 样一个符合要求的软 ...

  7. 线形回归和梯度下降的Python实例。

    线形回归和梯度下降的Python实例. 内容模仿学习于:https://www.cnblogs.com/focusonepoint/p/6394339.html 本文只是做为一个自我梳理 线形回归的特 ...

  8. Python 实例教学_ 03_列表

    Python 实例教程 Python 实例教学_ 03_列表 第十三课 [844. 比较含退格的字符串](https://leetcode.cn/problems/backspace-string-c ...

  9. 占位符%字符串格式化输出 - python实例

    目录 1. %占位符 概念 and python 实例 格式化字符串转换符 表 2. format 2.1基础语法 format可以实现%所实现的,但功能更强大 2.2 高阶 1. %占位符 概念 a ...

  10. python接收输入的一行字符只统计数字的个数,Python(统计字符),python实例,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数...

    Python(统计字符),python实例,输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 ...

最新文章

  1. 神经网络检测三相电机缺相
  2. plt title设置在下方_Python数据分析:可视化图表注释设置
  3. findall与match、search区别及小括号的注意事项
  4. linux 进程(一)---基本概念
  5. Asp.net中执行.EXE程序的方法
  6. hadoop2.4.1源码编译步骤 hive0.13.1编译
  7. java foxmail 附件_foxmail 本程序使用JavaMail进行收取和发送带附件的邮件 - 下载 - 搜珍网...
  8. strcat在某种特定条件下的优化
  9. 360手机浏览器_网信办出手:华为、360、qq等8款手机浏览器被列入首批重点整治名单...
  10. java批处理框架 pdf_史上最轻松入门之Spring Batch - 轻量级批处理框架实践
  11. paip.调用GUI接口.
  12. CLion开发,运行报错后问题排查
  13. 机器学习实战:支持向量机回归预测财政收入
  14. mysql2008安装失败_SQL Server 2008 安装失败问题总结
  15. 10-特质-Scala
  16. 我的世界手机版javaui材质包_我的世界:史蒂夫都有皮肤,存档也想换新装,这4种材质包很适合...
  17. Python 数据采集-爬取学校官网新闻标题与链接(基础)
  18. 清除一个挖矿程序、步骤!!!
  19. Mvc动态注册HttpModule详解
  20. 1-初识DXGI与D3D

热门文章

  1. 《算法竞赛进阶指南》0x05 T3 七夕祭
  2. 交流群问题-收集记录
  3. Hadoop生态圈-Knox网关的应用案例
  4. 简单数据结构题(from 钟子谦——IOI2018集训队自选题)
  5. com.qihoo.android.float window,全民枪战360版(com.crisisfire.android.qihoo) - 3.23.1 - 游戏 - 酷安...
  6. 对老王家的三路充电模块研究
  7. CIDR子网拆分细节
  8. NXP IMX6ULL的官方文档、官方BSP、交叉编译工具链下载
  9. 鱼眼相机成像模型以及基于OpenCV标定鱼眼镜头(C++)
  10. 为Navicat正名,Navicat完全使用手册(下)