案例:

把某个字符串依据分隔符拆分,该字符包含不同的多种分隔符,如下

s = '12;;7.osjd;.jshdjdknx+'

其中 ; . + 是分隔符

有哪些解决方案?

方法1:通过str.split()方法,每次处理一个分隔符

#!/usr/bin/python3

def go_split(s, symbol):
result = [s]
for i in symbol:
median = []
# 普通方法
# for x in result:
# median.extend(x.split(i) # 列表解析
# [median.extend(y.split(i)) for y in result if y] # map高阶函数,map生成可迭代对象
for z in map(lambda x: x.split(i), result):
median.extend(z) # 以上三个方法都可以解决问题
result = median # 去除空字符串
return [x for x in result if x] if __name__ == "__main__":
# 定义初始字符串
s = '12;;7.osjd;.jshdjdknx+'
# 定义分隔符
symbol = ';./+' result = go_split(s, symbol)
print(result)

方法2:通过re.split()方法,一次性拆分所有字符串,推荐

#!/usr/bin/python3

import re

def go_split(s, symbol):
# 拼接正则表达式
symbol = "[" + symbol + "]+"
# 一次性分割字符串
result = re.split(symbol, s)
# 去除空字符
return [x for x in result if x] if __name__ == "__main__":
# 定义初始字符串
s = '12;;7.osjd;.jshdjdknx+'
# 定义分隔符
symbol = ';./+' result = go_split(s, symbol)
print(result)

 

最新文章

  1. JavaScript将字符串中的每一个单词的第一个字母变为大写其余均为小写
  2. FTP的搭建与虚拟目录作用<之简单讲解>
  3. Java异常体系及分类
  4. 软件工程:vs单元测试
  5. Java并发包中CyclicBarrier的工作原理、使用示例
  6. (十七)迭代器模式详解(foreach的精髓)
  7. 十天冲刺---Day8
  8. Lamp源码搭建
  9. 伸展树(二)之 C++的实现
  10. Source Tree for MAC1.6
  11. bzoj 2282: [Sdoi2011]消防
  12. 【Qt】Qt国际化(系统文本-QMessageBox按钮、QLineEdit右键菜单等)【转】
  13. C# 调用WebService的方法
  14. web2py--------------用web2py写 django的例子 --------开发环境
  15. Win7下启用IIS7
  16. android五种布局模式
  17. OCP读书笔记(10) - 使用闪回技术I
  18. 如何在RecyclerView上面实现"拖放"和"滑动删除"-1
  19. 405 css样式的研究 list-style-type 属性研究
  20. Codeforces 101623E English Restaurant - 动态规划

热门文章

  1. php 正则表达式匹配(持续更新)
  2. 关于对MyBatis.net框架的学习笔记( MyBatis.net是一款灵活性极大,sql由开发者自行在xml中编写, 轻量的ORM映射框架). 同时避免了sql硬编码到代码中不易维护的问题...
  3. ZooKeeper的十二连问,你顶得了嘛?
  4. ent orm笔记4---Code Generation
  5. Android开发之viewpager导报错误解决方法:错误代码 Caused by: java.lang.ClassNotFoundException: Didn't find class
  6. unity坑-编译错误
  7. Java 中基本数据类型的变量的转换规则
  8. Maven 仓库镜像设置
  9. 时间选择器 element
  10. 使用vuepress搭建GitHub pages静态博客页面