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操作Word批量生成文章的方法
Jul 28 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
Python 装饰器使用详解
Jul 29 Python
python实现批量修改文件名代码
Sep 10 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
matplotlib中legend位置调整解析
Dec 19 Python
Django REST framework 分页的实现代码
Jun 19 Python
Python的缺点和劣势分析
Nov 19 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
python3 字符串str和bytes相互转换
Mar 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
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
python处理csv数据的方法
2015/03/11 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
Django实现跨域的2种方法
2019/07/31 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
五四青年节的活动方案
2014/08/20 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
外国人来华邀请函
2015/01/31 职场文书
就业意向书范本
2015/05/11 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android