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使用xlrd模块操作Excel数据导入的方法
May 26 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
利用Anaconda简单安装scrapy框架的方法
Jun 13 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
python3的print()函数的用法图文讲解
Jul 16 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
Python中包的用法及安装
Feb 11 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
一些关于python 装饰器的个人理解
Aug 31 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
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
Python requests模块session代码实例
2020/04/14 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
司机检讨书
2014/02/13 职场文书
《口技》教学反思
2014/02/21 职场文书
学习型班组申报材料
2014/05/31 职场文书
联谊活动总结
2014/08/28 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
教学工作总结范文5篇
2019/08/19 职场文书