Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例


Posted in Python onApril 19, 2018

本文实例讲述了Python针对任意多的分隔符拆分字符串操作。分享给大家供大家参考,具体如下:

问题:将分隔符(以及分隔符之间的空格)不一致的字符串拆分为不同的字段;

解决方案:使用更为灵活的re.split()方法,该方法可以为分隔符指定多个模式。

说明:字符串对象的split()只能处理简单的情况,而且不支持多个分隔符,对分隔符周围可能存在的空格也无能为力。

# example.py
#
# Example of splitting a string on multiple delimiters using a regex
import re #导入正则表达式模块
line = 'asdf fjdk; afed, fjek,asdf,   foo'
# (a) Splitting on space, comma, and semicolon
parts = re.split(r'[;,\s]\s*', line)
print(parts)
# (b) 正则表达式模式中使用“捕获组”,需注意捕获组是否包含在括号中,使用捕获组导致匹配的文本也包含在最终结果中
fields = re.split(r'(;|,|\s)\s*', line)
print(fields)
# (c) 根据上文的分隔字符改进字符串的输出
values = fields[::2]
delimiters = fields[1::2]
delimiters.append('')
print('value =', values)
print('delimiters =', delimiters)
newline = ''.join(v+d for v,d in zip(values, delimiters))
print('newline =', newline)
# (d) 使用非捕获组(?:...)的形式实现用括号对正则表达式模式分组,且不输出分隔符
parts = re.split(r'(?:,|;|\s)\s*', line)
print(parts)
>>> ================================ RESTART ================================
>>>
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
value = ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
delimiters = [' ', ';', ',', ',', ',', '']
newline = asdf fjdk;afed,fjek,asdf,foo
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
>>>

(代码摘自《Python Cookbook》)

Python 相关文章推荐
python操作摄像头截图实现远程监控的例子
Mar 25 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python获取多线程及子线程的返回值
Nov 15 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
Python Pygame实现俄罗斯方块
Feb 19 Python
Python词云的正确实现方法实例
May 08 Python
Python竟然能剪辑视频
May 25 Python
使用Pytorch训练two-head网络的操作
May 28 Python
python 镜像环境搭建总结
Sep 23 Python
PyQt5每天必学之带有标签的复选框
Apr 19 #Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 #Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 #Python
一篇文章读懂Python赋值与拷贝
Apr 19 #Python
PyQt5每天必学之布局管理
Apr 19 #Python
PyQt5每天必学之创建窗口居中效果
Apr 19 #Python
PyQt5每天必学之弹出消息框
Apr 19 #Python
You might like
Dedecms常用函数解析
2008/02/01 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
全面了解JavaScript的作用域链
2019/04/03 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python批量复制图片到另一个文件夹
2018/09/17 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
大学活动总结格式
2014/04/29 职场文书
中等生评语大全
2014/05/04 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
七年级地理教学计划
2015/01/22 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
win10更新失败无限重启解决方法
2022/04/19 数码科技