第11.22节Python中re模块的字符串分割器:split函数
⼀、引⾔
在《》介绍了re模块的主要函数,在《》重点介绍了⼏个搜索函数,后续章节将介绍re模块的其他函数,本节先介绍re.split函数的功能。
⼆、语法释义
1. 调⽤语法:
re.split(pattern, string, maxsplit=0, flags=0)
2. 参数及返回结果释义:
1)这个函数的功能与字符串的split⽅法有些类似,只是字符串内split是固定分隔符,⽽这是⽤正则表达式来分开 string,分开的字符存
放在返回的列表元素内。
2)如果在 pattern 对应正则表达式中存在元字符“()”,且能匹配到搜索⽂本,那么每个匹配组⾥的字符
也会按顺序包含在列表的单独
元素⾥。
3)如果 maxsplit ⾮零,最多进⾏ maxsplit 次分隔,剩下的字符全部返回到列表的最后⼀个元素。
3. 注意:如果在string的结尾或开头能匹配pattern,则会在返回列表的最后⼀个元素或第⼀个元素是空字符串。
三、案例
>>> re.split('\W+','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress!')
['Learning', 'Python', 'with', 'LaoYuan', 'LaoYuanPython', 'accompanies', 'you', 'to', 'progress', '']
>>> re.split('(\W+)','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress!')
['Learning', ' ', 'Python', ' ', 'with', ' ', 'LaoYuan', ',', 'LaoYuanPython', ' ', 'accompanies', ' ', 'you', ' ', 'to', ' ', 'progress', '!', '']
>>>
python正则表达式不包含上述案例中的匹配模式就是搜索⾮单词字符作为分隔符(请参考《》),第⼀个语句是没有组匹配模式,返回列表的最后⼀个元素为空字符串,第⼆个是有组匹配模式,所有⾮单词字符都被作为列表的元素返回了。
我们再看⼀个案例:
>>> re.split('(\W*)','Hello,world')
['', '', 'H', '', 'e', '', 'l', '', 'l', '', 'o', ',', '', '', 'w', '', 'o', '', 'r', '', 'l', '', 'd', '', '']
结果是不是很意外?请⼤家思考⼀下为什么会这样。具体分析请参考《Python正则表达式W+和W*匹配过程的深⼊分析》。
请⼤家多多⽀持,点赞、评论和加关注!谢谢!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。