详解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 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
python提取内容关键词的方法
Mar 16 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
python OpenCV学习笔记直方图反向投影的实现
Feb 07 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
谈谈Python中的while循环语句
Mar 10 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
python yield关键词案例测试
Oct 15 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
Dec 02 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
python生成随机数、随机字符、随机字符串
Apr 06 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
详解提高使用Java反射的效率方法
2019/04/29 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
如何基于python操作excel并获取内容
2019/12/24 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
奥巴马英文演讲稿
2014/05/15 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
关键在于落实心得体会
2014/09/03 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
党支部评议意见
2015/06/02 职场文书
高二语文教学反思
2016/02/16 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
Django drf请求模块源码解析
2021/06/08 Python
SpringBoot生成License的实现示例
2021/06/16 Java/Android
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript