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标准库os.path包、glob包使用实例
Nov 25 Python
Python中的面向对象编程详解(上)
Apr 13 Python
用Python实现换行符转换的脚本的教程
Apr 16 Python
python使用PIL模块实现给图片打水印的方法
May 22 Python
Python函数式编程指南(四):生成器详解
Jun 24 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
python实现猜单词小游戏
May 22 Python
Django开发中的日志输出的方法
Jul 02 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
Django多数据库的实现过程详解
Aug 01 Python
python标记语句块使用方法总结
Aug 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
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
Python list与NumPy array 区分详解
2019/11/06 Python
使用python制作一个解压缩软件
2019/11/13 Python
用python读取xlsx文件
2020/12/17 Python
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
会计毕业生求职简历的自我评价
2013/10/20 职场文书
保险公司早会主持词
2014/03/22 职场文书
学校教师读书活动总结
2014/07/08 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
员工工作自我评价
2014/09/26 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
会计试用期自我评价
2015/03/10 职场文书
河童之夏观后感
2015/06/11 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android