详解Python中正则匹配TAB及空格的小技巧


Posted in Python onJuly 26, 2019

在正则中,使用.*可以匹配所有字符,其中.代表除\n外的任意字符,*代表0-无穷个,比如说要分别匹配某个目录下的子目录:

>>> import re
>>> match = re.match(r"/(.*)/(.*)/(.*)/", "/usr/local/bin/")
>>> match.groups()
('usr', 'local', 'bin')
>>>

比如像上面,使用(.*)就能很好的匹配,但如果字符串中里面即有TAB键,又有空格,要匹配出来,如何匹配呢?比如说像"Hello          Python World!", Hello到Python之间,即有空格键,又有TAB键,而且可能有1到多个,这个直接用(.*)就连"Python "给匹配到了,从下面可以看到两个TAB,两个空格键,还有Python都匹配到了。

>>> import re
>>> match = re.match(r"Hello(.*)World!", "Hello      Python World!")
>>> match.group(1)
'\t\t Python '
>>>

要想匹配到TAB和空格的混合字符,可以使用下面的两个小技巧:

1). 使用\s来匹配

>>> import re
>>> match = re.match(r"Hello(\s*)(.*)World!", "Hello       Python World!"
)
>>> match.groups()
('\t\t ', 'Python ')
>>>

2). 使用[\t ]来匹配

>>> import re
>>> match = re.match(r"Hello([\t ]*)(.*)World!", "Hello      Python World!"
)
>>> match.groups()
('\t\t ', 'Python ')
>>>

上面的小技巧,都能完美匹配TAB和空格键.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python XML RPC服务器端和客户端实例
Nov 22 Python
Python创建系统目录的方法
Mar 11 Python
python 读入多行数据的实例
Apr 19 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
python3中确保枚举值代码分析
Dec 02 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 #Python
Django Rest framework频率原理与限制
Jul 26 #Python
Django 使用easy_thumbnails压缩上传的图片方法
Jul 26 #Python
解决django服务器重启端口被占用的问题
Jul 26 #Python
深入解析神经网络从原理到实现
Jul 26 #Python
python单例模式的多种实现方法
Jul 26 #Python
django的ORM操作 增加和查询
Jul 26 #Python
You might like
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
php中上传文件的的解决方案
2018/09/25 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
学校后勤人员职责
2013/12/27 职场文书
综治维稳工作汇报
2014/10/27 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server