现在有一个字符串: 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)
运行效果如下图所示,完美解决问题: