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自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python中的异常处理学习笔记
Jan 28 Python
简单介绍Python中的JSON使用
Apr 28 Python
Python实现的多线程http压力测试代码
Feb 08 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
Python 创建空的list,以及append用法讲解
May 04 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
Python while循环使用else语句代码实例
Feb 07 Python
Python3 读取Word文件方式
Feb 13 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 Python
Python实现抖音热搜定时爬取功能
Mar 16 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
短波问题解答
2021/02/28 无线电
php 生成WML页面方法详解
2009/08/09 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP常用的三种设计模式
2017/02/17 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
js replace替换所有匹配的字符串
2014/02/13 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
js实现简易计算器功能
2019/10/18 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
python实现的简单窗口倒计时界面实例
2015/05/05 Python
python生成器generator用法实例分析
2015/06/04 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
Wallis官网:英国女装零售商
2020/01/21 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
自我鉴定范文
2013/11/10 职场文书
学校万圣节活动方案
2014/02/13 职场文书
税务会计岗位职责
2014/02/18 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
党员检讨书范文
2014/12/27 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
tomcat下部署jenkins的方法
2022/05/06 Servers