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 相关文章推荐
使用url_helper简化Python中Django框架的url配置教程
May 30 Python
python编写弹球游戏的实现代码
Mar 12 Python
selenium+python实现自动登录脚本
Apr 22 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
Python多线程原理与用法详解
Aug 20 Python
python之信息加密题目详解
Jun 26 Python
python 寻找离散序列极值点的方法
Jul 10 Python
django 信号调度机制详解
Jul 19 Python
Python generator生成器和yield表达式详解
Aug 08 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
python实现QQ邮箱发送邮件
Mar 06 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 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快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php SQL Injection with MySQL
2011/02/27 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
javascript表单验证大全
2015/08/12 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
python操作yaml说明
2020/04/08 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
国窖1573广告词
2014/03/21 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers