详解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 相关文章推荐
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
python2.7的编码问题与解决方法
Oct 04 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
python中cPickle类使用方法详解
Aug 27 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Python中super函数用法实例分析
Mar 18 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
keras打印loss对权重的导数方式
Jun 10 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
Python入门之基础语法详解
May 11 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
JS实现轮播图效果
2020/01/11 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python文件操作类操作实例详解
2014/07/11 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
python在文本开头插入一行的实例
2018/05/02 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
Eclipse面试题
2014/03/22 面试题
心得体会开头
2014/01/01 职场文书
高中校园广播稿
2014/01/11 职场文书
安全生产承诺书
2014/03/26 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
施工安全保证书
2015/05/09 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python