Python 的字符串默认是有一个 split 来把字符串分割成列表的:
>>> test_str = "hello world,nice to meet you"
>>> test_str.split(',')
['hello world', 'nice to meet you']
>>> test_str.split(' ')
['hello', 'world,nice', 'to', 'meet', 'you']
如果我想让上面的字符串同时按照逗号和空格分割成下面的列表应该怎么做呢?
['hello', 'world', 'nice', 'to', 'meet', 'you']
这个时候,re 的 split 就能派上用场了,它可以把正则匹配到的 pattern 都作为分隔符。
>>> import re
>>> test_str = "hello world,nice to meet you"
>>> re.split('[,| ]', test_str)
['hello', 'world', 'nice', 'to', 'meet', 'you']
>>> re.split('[, ]', test_str)
['hello', 'world', 'nice', 'to', 'meet', 'you']
>>> re.split(',| ', test_str)
['hello', 'world', 'nice', 'to', 'meet', 'you']
其实,像 re.sub 和 字符串的 str.replace 也有异曲同工之妙,re.sub 可以同时替换多个满足正则匹配的部分,而不仅仅是某个固定的字符串。