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算法学习之基数排序实例
Dec 18 Python
Python3.0与2.X版本的区别实例分析
Aug 25 Python
分享一个常用的Python模拟登陆类
Mar 29 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
Python性能提升之延迟初始化
Dec 04 Python
Python列表切片用法示例
Apr 19 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
Python Websocket服务端通信的使用示例
Feb 25 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
php目录拷贝实现方法
2015/07/10 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
js右键菜单效果代码
2007/07/21 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
js闭包学习心得总结
2018/04/17 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
Python中的面向对象编程详解(下)
2015/04/13 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
母亲80寿诞答谢词
2014/01/16 职场文书
室内拓展活动方案
2014/02/13 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
质量保证书格式模板
2015/02/27 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
python中%格式表达式实例用法
2021/06/18 Python
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
node快速搭建后台的实现步骤
2022/02/18 NodeJs