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实现每次处理一个字符的三种方法
Oct 09 Python
python使用str & repr转换字符串
Oct 13 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
python实现信号时域统计特征提取代码
Feb 26 Python
Python如何生成xml文件
Jun 04 Python
python logging模块的使用详解
Oct 23 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 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
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
python中dir函数用法分析
2015/04/17 Python
在Python中移动目录结构的方法
2016/01/31 Python
python字符串,数值计算
2016/10/05 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
详解python pandas 分组统计的方法
2019/07/30 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
python中Mako库实例用法
2020/12/31 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
经典优秀个人求职信分享
2013/12/12 职场文书
省三好学生申请材料
2014/01/22 职场文书
优秀团队获奖感言
2014/02/19 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书