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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
linux下python抓屏实现方法
May 22 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
python 实现A*算法的示例代码
Aug 13 Python
Python操作Excel插入删除行的方法
Dec 10 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
Django drf请求模块源码解析
Jun 08 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用户名的密码加密更安全的方法
2019/06/21 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
浅谈node模块与npm包管理工具
2018/01/03 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python文件操作类操作实例详解
2014/07/11 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
python机器学习之神经网络实现
2018/10/13 Python
用Python逐行分析文件方法
2019/01/28 Python
Python读取指定日期邮件的实例
2019/02/01 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
python读取xml文件方法解析
2020/08/04 Python
物流专业自荐信
2014/05/23 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
话题作文之成长
2019/12/09 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android