Python:如何拆分含有多种分隔符的字符串
方法一:连续使用str.spilt()方法,每次处理一种分隔符;
str.split()方法的应用:按某一种分隔符分割字符串;
#不能用单词字符进行分割(字母、数字、下划线)
A、str.split()的用法
#此处是str.spilt(),而不是re.spilt()
s = 'ab, cd,; aef;,; gh;aij|kl|amb\t op\tqr' s1 = s.split() #A、默认状态按空格进行分割; print(s1) #输出:['ab,', 'cd,;', 'aef;,;', 'gh;aij|kl|amb', 'op', 'qr'] s2 = s.split(',') #B、按某一符号进行分割 print(s2) #输出:['ab', ' cd', '; aef;', '; gh;aij|kl|amb\t op\tqr']
B、代码
def mysplit(s, ds): res = [s] for d in ds: t = [] #t.extend(x.split(d)):此处,extend将x.aplit(d)返回的结果的元素,添加到t中 [t.extend(x) for x in map(lambda x: x.split(d), res)] res = t #去除空列表里的空字符串 return [x for x in res if x] s = 'ab,cd,;aef;,;gh;aij|kl|amb\top\tqr' print(mysplit(s, ';,|\t'))
#
方法二:使用正则表达式的re.split()方法,一次性拆分字符串(更快捷方便)
import re s = 'ab,cd,;aef;,;gh;aij|kl|amb\top\tqr' s1 = re.split('[,;|\t]*', s)
#去除s1中的空字符串 print([x for x in s1 if x])
分类:
Python
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决