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 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
python字符串连接的N种方式总结
Sep 17 Python
Python中如何获取类属性的列表
Dec 26 Python
使用python进行文本预处理和提取特征的实例
Jun 05 Python
Python错误处理操作示例
Jul 18 Python
解析Python3中的Import
Oct 13 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
Python实现CAN报文转换工具教程
May 05 Python
django 模型中的计算字段实例
May 19 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
详解pandas赋值失败问题解决
Nov 29 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
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
三步实现ionic3点击退出app程序
2019/09/17 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
python解析xml文件操作实例
2014/10/05 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
Windows下python3.6.4安装教程
2018/07/31 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
python的faker库用法
2019/11/28 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
python微信公众号开发简单流程实现
2020/03/09 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
美容师的职业规划书
2013/12/27 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
运动会加油稿20字
2014/11/15 职场文书
学籍证明模板
2014/11/21 职场文书
2014年图书室工作总结
2014/12/09 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
病假条格式范文
2015/08/17 职场文书
2019求职信大礼包
2019/05/15 职场文书