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模拟登录验证码(代码简单)
Feb 06 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python Socket编程之多线程聊天室
Jul 28 Python
Django异步任务之Celery的基本使用
Mar 23 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
python dumps和loads区别详解
Feb 04 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
Django values()和value_list()的使用
Mar 31 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 Python
python有几个版本
Jun 17 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 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中养成7个面向对象的好习惯
2010/07/17 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
javascript里的条件判断
2007/02/27 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
使用Python的判断语句模拟三目运算
2015/04/24 Python
用python爬取租房网站信息的代码
2018/12/14 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python读取csv文件实例解析
2019/12/30 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
投标诚信承诺书
2014/05/26 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
mysql 排序失效
2022/05/20 MySQL