Python基础学习:字符串分割方法详解
创始人
2024-02-16 03:02:42
0

Python中字符串分割的常用方法是直接调用字符串的str.split方法,但是其只能指定一种分隔符,如果想指定多个分隔符拆分字符串需要用到re.split方法(正则表达式的split方法)。

1.str.split

字符串的split方法函数原型如下,其中sep为指定的分隔符,maxsplit为最大分割次数:

str.split(sep=None, maxsplit=-1)

默认情况下,不指定分隔符时则以空白字符(空格,回车,制表符等)作为分隔符拆分字符串:

>>> s = 'A B\tC\nD'
>>> s.split()
['A', 'B', 'C', 'D']
>>>

在结果列表中,不会包含空字符串:

>>> s = ' A B\tC\nD\n\n'>>> s.split()['A', 'B', 'C', 'D']>>>

指定分隔符:

>>> s = 'www.google.com'>>> s.split('.')['www', 'google', 'com']>>> s = 'AA||BB||CC||DD'>>> s.split('||')['AA', 'BB', 'CC', 'DD']>>>

指定最大分割次数:

>>> s = 'www.google.com'>>> s.split('.', 1)['www', 'google.com']>>> s = 'AA||BB||CC||DD'>>> s.split('||', 2)['AA', 'BB', 'CC||DD']>>>

由此可见,当指定最大分割次数maxsplit时,结果列表长度为maxsplit+1。
但是,字符串的split方法只能指定一个分隔符,如下:

s = 'AAAA,BBBB:CCCC;DDDD'

如果想指定逗号、冒号、分号都做为分隔符,字符串的split方法是做不到的,此时要用正则表达式中的split方法。

2.re.split

正则表达式的split方法原型如下,其中pattern为指定的分隔正则表达式,string为要分割的字符串,maxsplit为最大分割次数,flags为正则表达式用到的通用标志:

re.split(pattern, string, maxsplit=0, flags=0)

参考示例:

>>> import re>>> s = 'AAAA,BBBB:CCCC;DDDD'>>> re.split(r'[,:;]', s)['AAAA', 'BBBB', 'CCCC', 'DDDD']>>>

如果在正则表达式里使用了捕获组也就是括号,则结果列表中也会包含捕获的内容:

>>> import re
#更多Python视频、源码、资料加群711312441免费获取
>>> s = 'AAAA,BBBB:CCCC;DDDD'>>> re.split(r'([,:;])', s)['AAAA', ',', 'BBBB', ':', 'CCCC', ';', 'DDDD']>>>

如果不想在结果中看到分隔符,但仍然想用括号对正则表达式模式进行分组,可以使用非捕获组,以(?:…)的形式指定,示例如下:

>>> import re>>> s = 'AAAA,BBBB:CCCC;DDDD'>>> re.split(r'(?:[,:;])', s)['AAAA', 'BBBB', 'CCCC', 'DDDD']>>>

指定最大分割次数:

>>> import re>>> s = 'AAAA,BBBB:CCCC;DDDD'>>> re.split(r'[,:;]', s, 1)['AAAA', 'BBBB:CCCC;DDDD']>>> re.split(r'[,:;]', s, 2)['AAAA', 'BBBB', 'CCCC;DDDD']>>>

由此可见,当指定最大分割次数maxsplit时,结果列表长度为maxsplit+1。
指定正则表达式中的通用标志flags:

>>> import re
>>> re.split('[a-f]+', '0a3B9', flags=re.IGNORECASE)['0', '3', '9']
>>>

相关内容

热门资讯

修订食安法:首次确立重点液态食... 12月23日,市场监管总局副局长柳军在食品安全专题新闻发布会上介绍,总局推动《中华人民共和国食品安全...
七成涉重疾险理赔诉讼请求获判决... “涉重疾险纠纷案件数量较2021年上涨38.71%”“案件平均审理时长由2021年的217天下降为2...
建工修复近12个月累计诉讼金额... 12月23日,建工修复(300958)发布公告,截止至本公告披露日前的连续十二个月内,公司及合并报表...
海南产经新观察:为“向数图强”... 中新网海口12月23日电 (黄方舟)已经启动全岛封关的海南自贸港,正致力推动公共数据资源开发利用,加...
幼儿园收费划出“制度红线”,严... 大象新闻2025-12-23 17:12:18 2026年1月1日起,幼儿园收费实行目录清单管理,建...
快手就遭到黑灰产攻击谴责违法犯... 针对快手平台上出现违规内容的异常情况,12月23日,南都N视频记者从快手科技方面获悉,公司快手应用的...
调解故事 | 高效化解装修纠纷... 近日,延吉市房地产纠纷人民调解委员会成功调解了一起合同纠纷,切实维护了当事人合法权益。 今年5月,...
宁波女婴医疗纠纷进入司法程序 ... 央广网宁波12月23日消息(记者陈金莲 俞烨)12月23日,记者从宁波市海曙区人民法院了解到,该院已...
被举报打赏网红600余万,国企... 张女士系中国某工程咨询集团有限公司职员,其名下实名手机号注册的抖音账号“xx阳光”在不到两年的时间里...
涉房屋租赁合同纠纷案情:不适租... 租赁企业提供的房屋不适租,承租方有权单方解除合同并主张违约责任。 12月23日,北京第三中级人民法院...