在Python中拆分字符串的常见方法是直接调用字符串的str.split方法,但只能指定一个分隔符。 要使用多个分隔符拆分字符串,需要re.split方法(正则表达式的split方法)。
str .冲刺
的split方法函数原型如下: 其中,sep是指定的分隔符,maxsplit是最大分段数。
1
str.split(sep=
None,maxsplit=-1 )
默认情况下,如果未指定分隔符,字符串将使用空格、换行符、制表符等分隔为分隔符。
1
2
3
4
s=‘a bTCnd’
s.split () ) )。
[
‘a’、‘b’、‘c’、‘d’
结果列表不包含空字符串。
1
2
3
4
s=‘ A BtCnDnn‘
s.split () ) )。
[
‘a’、‘b’、‘c’、‘d’
指定分隔符:
1
2
3
4
5
6
7
s=‘www.Google.com’
s.split(‘.‘)
[
“万维网”、“谷歌”和“com”
s=‘AA||BB||CC||DD‘
s.split((|) )。
[
“aa‘、‘BB‘、‘CC‘、‘DD’”
指定最大分割数:
1
2
3
4
5
6
7
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方法只能包含一个分隔符,如下所示:
1
s=
‘AAAA、BBBB:CCCC; 滴滴涕‘
如果要将逗号、冒号和分号指定为分隔符,则不能使用字符串的split方法。 在这种情况下,使用正则表达式的split方法。
自由冲刺
正则表达式的split方法原型如下: 其中pattern是指定的分隔正则表达式,string是要拆分的字符串,maxsplit是最大拆分数,flags是正则表达式的公用标志。
1
re.split(pattern,string,maxsplit=
0,flags=0)
参考示例:
1
2
3
4
5
导入re
s=‘AAAA,BBBB:CCCC; 滴滴涕‘
re.split(r‘, ]‘,s ) )。
[
“‘AAAA‘”、“‘BBBB‘”、“‘CCCC‘”和“dddd”
如果在正则表达式中使用捕获组或括号,则结果列表还包含捕获的内容。
1
2
3
4
5
导入re
s=‘AAAA,BBBB:CCCC; 滴滴涕‘
re.split(r ) ([, ()、s ) )。
[
“‘AAAA‘”、“”、“‘BBBB‘”、“‘:‘”、“‘CCCC‘”和“; “,‘滴滴涕’”
如果不想在结果中看到分隔符,但想用括号将正则表达式模式分组,请使用非捕获组,以(: )的形式指定。 以下是示例。
1
2
3
4
5
导入re
s=‘AAAA,BBBB:CCCC; 滴滴涕‘
re.split(r‘?[, ()、s ) )。
[
“‘AAAA‘”、“‘BBBB‘”、“‘CCCC‘”和“dddd”
指定最大分割数:
1
2
3
4
5
6
7
导入re
s=‘AAAA,BBBB:CCCC; 滴滴涕‘
re.split(r‘, ]‘,s,1 )
[
‘AAAA’、‘BBBB:CCCC; 滴滴涕‘]
re.split(r‘, ]‘,s,2 )。
[
‘AAAA’、‘bbbb’、‘CCCC; 滴滴涕‘]
因此,如果指定最大分割数maxsplit,则结果列表的长度为maxsplit 1。
要指定正则表达式的公共标志flags,请:
1
2
3
4
导入re
re.split((a-f )、)‘0a3b 9’()、flags=re.IGNORECASE )。
[
“0”、“3”和“9”
原文链接: http://www.revo tu.com/python-split-string-methods.html