一日一技:一次性把字符串用多个分隔符分割

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一日一技:一次性把字符串用多个分隔符分割相关的知识,希望对你有一定的参考价值。

一日一技:一次性把字符串用多个分隔符分割

技术图片

现在有一个字符串: name,age,我们想把它分割为 name和 age,我们可以使用 split()方法:

a = ‘name,age‘
str_list = a.split(‘,‘)
print(str_list[0])
print(str_list[1])

运行效果如下图所示:
技术图片

但在现实中,有不少符号,中英文长的很像,但却不一样,并且有的人喜欢在分隔符后面加空格,有些人又不加空格。例如:


name, age,salary; address;  work

需要把里面的 name age salary address work切分开。

可能有人会把里面的所有分隔符全部替换为英文逗号,移除空格,然后再split,但是这样过于麻烦。

实际上正则表达式模块re提供了一个基于正则表达式的分割字符串函数 re.split。

对于中英文逗号,中英文分号,空格,可以使用下面这个正则表达式表示:

‘[,,;;] *‘

中括号里面的符号是“或”的关系,右中括号和星号之间有一个空格。“空格 星号”表示空格出现0次或无数次,这样无论分隔符后面有多少个空格都可以正确识别。所以切分上述字符串的代码为:

import re
a = ‘name, age,salary; address;  work‘
b = re.split(‘[,,;;] *‘, a)
print(b)

运行效果如下图所示,完美解决问题:

技术图片

以上是关于一日一技:一次性把字符串用多个分隔符分割的主要内容,如果未能解决你的问题,请参考以下文章

一日一技:从列表中一次性筛选多个指定位置的数据

一日一技:一个生成器如何当两个用?

一日一技:在 Python 里面如何合并多个有序列表并使得结果依然有序?

一日一技:如何把多层嵌套的列表展平

一日一技:如何把MongoDB作为循环队列

一日一技:一个括号两种意思,正则表达式奇怪的小括号