python split函数分割字符串_第11.22节 Python 中re模块的字符串分割器:split函数

二、语法释义

调用语法:

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

参数及返回结果释义:

1)这个函数的功能与字符串的split方法有些类似,只是字符串内split是固定分隔符,而这是用 正则表达式来分开 string,分开的字符存放在返回的列表元素内。

2)如果在 pattern 对应正则表达式中存在元字符“()”,且能匹配到搜索文本,那么每个匹配组里的字符也会按顺序包含在列表的单独元素里。

3)如果 maxsplit 非零, 最多进行 maxsplit 次分隔, 剩下的字符全部返回到列表的最后一个元素。

注意:如果在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', '!', '']

>>>

上述案例中的匹配模式就是搜索非单词字符作为分隔符(请参考《第11.15节 Python正则表达式转义符定义的特殊序列》),第一个语句是没有组匹配模式,返回列表的最后一个元素为空字符串,第二个是有组匹配模式,所有非单词字符都被作为列表的元素返回了。

我们再看一个案例:

>>> re.split('(\W*)','Hello,world')

['', '', 'H', '', 'e', '', 'l', '', 'l', '', 'o', ',', '', '', 'w', '', 'o', '', 'r', '', 'l', '', 'd', '', '']

结果是不是很意外?请大家思考一下为什么会这样。具体分析请参考《Python正则表达式W+和W*匹配过程的深入分析》。

你可能感兴趣的:(python,split函数分割字符串)