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之入门(二)基本数据类型
May 25 Python
Pyhton中防止SQL注入的方法
Feb 05 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
python创建临时文件夹的方法
Jul 06 Python
python开发之文件操作用法实例
Nov 13 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
Django中的ajax请求
Oct 19 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python使用turtle库绘制奥运五环
Feb 24 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
Feb 29 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 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
深入了解php4(2)--重访过去
2006/10/09 PHP
一篇入门的php Class 文章
2007/04/04 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
php实现简单四则运算器
2020/11/29 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
最美乡村医生事迹材料
2014/06/02 职场文书
活动总结新闻稿
2014/08/30 职场文书
美容院员工规章制度
2015/08/05 职场文书
2016年寒假见闻
2015/10/10 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android