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轻松查到删除自己的微信好友
Jan 10 Python
理论讲解python多进程并发编程
Feb 09 Python
详解Python中的正则表达式
Jul 08 Python
python实现连续图文识别
Dec 18 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
python读写csv文件实例代码
Jul 05 Python
python Pillow图像处理方法汇总
Oct 16 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 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实现视频文件上传完整实例
2014/08/28 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
javascript引导程序
2008/10/26 Javascript
用cssText批量修改样式
2009/08/29 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
python爬虫的工作原理
2017/03/05 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
详细分析python3的reduce函数
2017/12/05 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
汽车维修专业自荐书
2014/05/26 职场文书
签约仪式策划方案
2014/06/02 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
交通事故协议书范本
2014/11/18 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
数据设计之权限的实现
2022/08/05 MySQL