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 if not in 多条件判断代码
Sep 21 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
python基于Selenium的web自动化框架
Jul 14 Python
Django  ORM 练习题及答案
Jul 19 Python
python 连续不等式语法糖实例
Apr 15 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
变长双向rnn的正确使用姿势教学
May 31 Python
Python作用域和名称空间的详细介绍
Apr 13 Python
python+opencv实现目标跟踪过程
Jun 21 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
linux下实现定时执行php脚本
2015/02/13 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
php实现简易计算器
2020/08/28 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
个人简历自我评价八例
2013/10/31 职场文书
门卫班长岗位职责
2013/12/15 职场文书
投标担保书范文
2014/04/02 职场文书
普通员工辞职信范文
2015/05/12 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书