使用多个界定符分割字符串
一、 解决问题
你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
二、解决方案
string 对象的split()
re.split()
"""
你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
"""
"""
string 对象split()
它并不允许有多个分割符或者分割周围不确定的空格
re.split()
灵活
"""
三、代码说明
import re
line = "asdf fjdk; afed, fjek,asdf, foo"
resval = re.split(r'[;,\s]\s*', line)
print (resval) #->['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
# 使用括号分组(会保留分割的字符串)
resval = re.split(r'(;|,|\s)\s*', line)
print (resval)
#->['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
# 如果不想保留分割字符串在结果列表中,但是需要使用括号来进行分组
# 确保分组时非捕获分组的话,使用(?:...)
resval = re.split(r'(?:,|;|\s)\s*', line)
print (resval) #->['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
四、关联知识
正则表达式: 传送门,待补充
五、总结
六、代码地址
github地址:https://github.com/weichen666/python_cookbook
目录/文件:second_selection/learn_str_split.py