python 字符串分割方法_Python字符串分割方法总结

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

str.split

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

1

str.split(sep=

None, maxsplit=-1)

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

1

2

3

4

>>> s = ‘A B\tC\nD‘

>>> s.split()

[

‘A‘, ‘B‘, ‘C‘, ‘D‘]

>>>

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

1

2

3

4

>>> s = ‘ A B\tC\nD\n\n‘

>>> s.split()

[

‘A‘, ‘B‘, ‘C‘, ‘D‘]

>>>

指定分隔符:

1

2

3

4

5

6

7

>>> s = ‘www.google.com‘

>>> s.split(‘.‘)

[

‘www‘, ‘google‘, ‘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;DDDD‘

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

re.split

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

1

re.split(pattern, string, maxsplit=

0, flags=0)

参考示例:

1

2

3

4

5

>>> import re

>>> s = ‘AAAA,BBBB:CCCC;DDDD‘

>>> re.split(r‘[,:;]‘, s)

[

‘AAAA‘, ‘BBBB‘, ‘CCCC‘, ‘DDDD‘]

>>>

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

1

2

3

4

5

>>> import re

>>> s = ‘AAAA,BBBB:CCCC;DDDD‘

>>> re.split(r‘([,:;])‘, s)

[

‘AAAA‘, ‘,‘, ‘BBBB‘, ‘:‘, ‘CCCC‘, ‘;‘, ‘DDDD‘]

>>>

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

1

2

3

4

5

>>> import re

>>> s = ‘AAAA,BBBB:CCCC;DDDD‘

>>> re.split(r‘(?:[,:;])‘, s)

[

‘AAAA‘, ‘BBBB‘, ‘CCCC‘, ‘DDDD‘]

>>>

指定最大分割次数:

1

2

3

4

5

6

7

>>> 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:

1

2

3

4

>>> import re

>>> re.split(‘[a-f]+‘, ‘0a3B9‘, flags=re.IGNORECASE)

[

‘0‘, ‘3‘, ‘9‘]

>>>

原文链接:http://www.revotu.com/python-split-string-methods.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值