详解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中列表(list)操作方法汇总
Aug 18 Python
Python专用方法与迭代机制实例分析
Sep 15 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
python 实时遍历日志文件
Apr 12 Python
Python中str.format()详解
Mar 12 Python
Python numpy 点数组去重的实例
Apr 18 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
pyshp创建shp点文件的方法
Dec 31 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
python opencv如何实现图片绘制
Jan 19 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
利用python 下载bilibili视频
Nov 13 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Python File readlines() 使用方法
2018/03/19 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Django model反向关联名称的方法
2018/12/15 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
django用户登录验证的完整示例代码
2019/07/21 Python
sklearn的predict_proba使用说明
2020/06/28 Python
树莓派升级python的具体步骤
2020/07/05 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
Python使用Pygame绘制时钟
2020/11/29 Python
北京华建集团SQL面试题
2014/06/03 面试题
计算机求职信
2013/12/01 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
保护环境的标语
2014/06/09 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
十八大观后感
2015/06/12 职场文书
运动会通讯稿50字
2015/07/20 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android