python字符串切割:str.split()与re.split()的对比分析

yipeiwu_com5年前Python基础

1、str.split不支持正则及多个切割符号,不感知空格的数量,比如用空格切割,会出现下面情况。

>>> s1="aa bb cc"
>>> s1.split(' ')
['aa', 'bb', '', 'cc']

因此split只适合简单的字符分割

2、re.split,支持正则及多个字符切割

>>> print line
abc aa;bb,cc | dd(xx).xxx 12.12'	xxxx
按空格切
>>> re.split(r' ',line)
['abc', 'aa;bb,cc', '|', 'dd(xx).xxx', "12.12'\txxxx"]
加将空格放可选框内[]内
>>> re.split(r'[ ]',line)
['abc', 'aa;bb,cc', '|', 'dd(xx).xxx', "12.12'\txxxx"]
按所有空白字符来切割:\s([\t\n\r\f\v])\S(任意非空白字符[^\t\n\r\f\v]
>>> re.split(r'[\s]',line)
['abc', 'aa;bb,cc', '|', 'dd(xx).xxx', "12.12'", 'xxxx']
多字符匹配
>>> re.split(r'[;,]',line)
['abc aa', 'bb', "cc | dd(xx).xxx 12.12'\txxxx"]
>>> re.split(r'[;,\s]',line)
['abc', 'aa', 'bb', 'cc', '|', 'dd(xx).xxx', "12.12'", 'xxxx']
使用括号捕获分组的适合,默认保留分割符
re.split('([;])',line)
['abc aa', ';', "bb,cc | dd(xx).xxx 12.12'\txxxx"]
去掉分隔符,加?:
>>> re.split(r'(?:;)',line)
['abc aa', "bb,cc | dd(xx).xxx 12.12'\txxxx"]

以上这篇python字符串切割:str.split()与re.split()的对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python常用字符串替换函数strip、replace及sub用法示例

本文实例讲述了Python常用字符串替换函数strip、replace及sub用法。分享给大家供大家参考,具体如下: 今天在做一道今年秋季招聘题目的时候遇上了一个替换的问题,题目看起来好...

python利用小波分析进行特征提取的实例

如下所示: #利用小波分析进行特征分析 #参数初始化 inputfile= 'C:/Users/Administrator/Desktop/demo/data/leleccum....

Python上下文管理器和with块详解

上下文管理器和with块,具体内容如下 上下文管理器对象存在的目的是管理 with 语句,就像迭代器的存在是为了管理 for 语句一样。 with 语句的目的是简化 try/finall...

python2与python3的print及字符串格式化小结

python2与python3的print及字符串格式化小结

最近一直在用python写程序,对于python的print一直很恼火,老是不按照预期输出。在python2中print是一种输出语句,和if语句,while语句一样的东西,在pytho...

win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程

win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程

tf2.0的三个优点: 1、方便搭建网络架构; 2、自动求导 3、GPU加速(便于大数据计算) 安装过程(概要提示) step1:安装annaconda3 step2:安装pycharm...