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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
Python实现的桶排序算法示例
Nov 29 Python
K-近邻算法的python实现代码分享
Dec 09 Python
Python 移动光标位置的方法
Jan 20 Python
python实现银联支付和支付宝支付接入
May 07 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
python 创建一维的0向量实例
Dec 02 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
Python selenium爬虫实现定时任务过程解析
Jun 08 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 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
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
python中cPickle用法例子分享
2014/01/03 Python
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
理解python正则表达式
2016/01/15 Python
Python执行时间的计算方法小结
2017/03/17 Python
Python 创建守护进程的示例
2020/09/29 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
phpquery中文手册
2021/03/18 PHP
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
电子商务个人自荐信
2013/12/12 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
党员志愿者活动总结
2014/06/26 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
四年级小学生评语
2014/12/26 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
诚实守信主题班会
2015/08/13 职场文书
子女赡养老人协议书
2016/03/23 职场文书