转载:https://blog.csdn.net/programmer_at/article/details/77409507?locationNum=7&fps=1

摘要

split多个分隔符 单一分隔符,使用str.split()即可
多个分隔符,复杂的分隔情况,使用re.split


单一分隔符,str.split()与 re.split()效果是一样的
多个单一 分隔符 时 ,”[]”与 “|”的 效果是一样的,但是 请注意 使用 “|”时某些字符 需要转义
多个 长短 不一 的的分隔符的分隔符时, 就应该使用 “|”
适用 “()”则是 将分隔后的结果保留分隔符(在split中,分隔符理应是被刨除的,所以这里有点难理解)
详见基础篇


一些 更 复杂 的 就 需要 加深对正则表达式的了解了 ,比如(非)贪婪模式,前/后向匹配
详见进阶篇

基础篇

import reline = "word;Word;temp"
"""
单一分隔符,str.split()与 re.split()zuoy作用一致
"""
print line.split("; ")
# ['word', 'Word', 'temp']
print re.split(r"; ", line)
# ['word', 'Word', 'temp']"""
多个单一 分隔符 时 ,"[]"与 "|"的 效果是一样的,但是 请注意 使用 “|”时 mouxie某些字符 需要转义
"""
line1 = "word;Word,emp?hahaha"
print re.split(r";|,|\?", line1) #别忘了转义"?"
# ['word', 'Word', 'emp', 'hahaha']
print re.split(r"[;,?]", line1)
# ['word', 'Word', 'emp', 'hahaha']## 当 空格 出现 时 ,就 十分讨厌了(ノω<。)ノ))☆.。
"""
多个 长短 不一 的的分隔符的分隔符时, 就应该使用 "|"
"""
line2 = "word;Word,emp? hahaha; whole, cai"
print re.split(r";|,|\?\s|;\s|,\s", line2)
# ['word', 'Word', 'emp', 'hahaha', ' whole', ' cai']## 以上 只是 为了 说明这些的吗的适用情况 ,还有 更加渐变简便 的 用法 是
print re.split(r"\W+", line)
print re.split(r"\W+", line1)
print re.split(r"\W+", line2)"""
适用 “()”则是 将 分隔 后的 结果 连同分隔符均 有所 保留
"""
print re.split(r"(\W+)", line2)
# ['word', ';', 'Word', ',', 'emp', '? ', 'hahaha', '; ', 'whole', ', ', 'cai']
# 注意: 连 空格 都 保留了 

进阶篇

"""
在 正则中 具有 含义 的 符号 也将 作为 分隔符 的 通用 解决 办法 ,请不要 在 尝试 要有 多少个 ‘\’
"""delimiters = "a", "...", "(C)"
regexPattern = '|'.join(map(re.escape, delimiters)) # 'a|\\.\\.\\.|\\(C\\)'
line = "stackoverflow (C) is awesome... isn't it?"
print re.split(regexPattern,line) # ['st', 'ckoverflow ', ' is ', 'wesome', " isn't it?"]"""
一些 更 复杂 的 就 需要 你对 正则 表达式 的更 深入 的 了解了
以下是 stackoverflow的 关于 re.split的 问题
"""
##split a string like "HELLO there HOW are YOU" by uppercase, thus the result is ['HELLO there', 'HOW are', 'YOU']
line1 = "HELLO there HOW are YOU"
re.split(r"\s+(?=[A-Z]+)", line1) # 后向匹配 # i want to split “400-IF(3>5,5,5)+34+IF(4>5,5,6)” by string 'IF(3>5,5,5)', so re.split() should give list with length: 2  ['400-', '+34+']
line2 = “400-IF(3>5,5,5)+34+IF(4>5,5,6)”
' '.join(re.split(r'IF\(.*?\)',z)).split()  # 贪婪模式 

Python中使用多个分隔符分隔字符串re.split相关推荐

  1. Nodejs使用多个分隔符分隔字符串

    在nodejs中当需要使用多个分隔符分隔字符串时,可以使用正则表达式作为split函数的参数,具体使用如下: var str = "111@222#333 444@555# 666 777& ...

  2. 如何在javascript中使用多个分隔符分割字符串?

    如何在JavaScript中使用多个分隔符拆分字符串? 我正在尝试在逗号和空格上进行拆分,但是AFAIK,JS的拆分功能仅支持一个分隔符. #1楼 对于那些想要在拆分功能中进行更多自定义的人,我编写了 ...

  3. python中使用大写字母来分割字符串

    python中使用大写字母来分割字符串 # python中使用大写字母来分割字符串 # 如 AbcdEfghiJklmn 分割为 Abcd, Efghi, Jklmnimport re num = r ...

  4. python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...

    一.通用操作 1.Python len() 方法返回对象(字符.列表.元组等)长度或项目个数. 语法 len()方法语法: len( q ) 参数 q -- 对象. 返回值 返回对象长度. 实例 以下 ...

  5. python中的列表、字典、字符串

    列表和字符串都存在:作用 下面详细说明一下":"在里面所起的作用; 格式: [起始 start:终止 end:步长 step] 开头(默认位置0)到结尾(默认位置-1)的整个字符串 ...

  6. python字符串和字节串有什么区别_对于Python中的字节串bytes和字符串以及转义字符的新的认识...

    事情的起因是之前同学叫我帮他用Python修改一个压缩包的二进制内容用来做fuzz,根据他的要求,把压缩包test.rar以十六进制的方式打开,每次修改其中一个十六进制字符串并保存为一个新的rar用来 ...

  7. python中的带有换行符的字符串在juypter中直接输入、print与写入文件的区别

    为什么会有这么个问题呢? 因为我在jupternotebook中输入带有换行符的字符串\n,但最终结果并没有体现换行的效果,这个出乎我意料,于是就有了这个记录. 实验结果: 第一种:jupternot ...

  8. [转载] Python中endswith() 函数法用于判断字符串是否以指定后缀结尾

    参考链接: Python中的字符串的endswith endswith()函数 描述: Python endswith() 函数法用于判断字符串是否以指定后缀结尾. 如果以指定后缀结尾返回True,否 ...

  9. 在 Python 中的常见的几种字符串替换操作

    基于Python3.7.3中,主要的方法有 替换子串:replace() 替换多个不同的字符串:re.sub(),re.subn() 用正则表达式替换:re.sub(),re.subn() 根据位置来 ...

  10. python中isdigit函数什么意思_python字符串是否为数字类型-python isdigit函数-isdigit函数 python-python isdigit函数使用-嗨客网...

    Python字符串是否是数字教程 在开发过程中,有时候我们需要判断一个 Python isdigit()函数详解 语法 str.isdigit() -> bool 参数 参数 描述 str 表示 ...

最新文章

  1. JavaScript,JS如何控制input输入字符限制
  2. 树形列(无限级联下拉列的曲线版本)
  3. 大公司or小公司,我该怎么选?
  4. django-前端上传图片190912
  5. Oracle Warehouse Builder 自动化ETL处置处罚历程(1)
  6. linux mac time machine,用 Ubuntu 10.10 构建 Time Machine 备份服务器
  7. 如何知道对象在Python中是否具有属性
  8. 更换系统后无法catkin_make universal robot 包
  9. 数据绑定以及Container.DataItem几种方式与使用方法分析
  10. 黑群晖 DSM 6.2 3617 成功安装教程
  11. RJ45转COM线序关系
  12. 如何在SendWS做到WhatsApp客服系统,WhatsApp云控客服系统有作用?为什么选择WhatsApp做海外营销推广?
  13. js中的Image对象
  14. 永恒之蓝勒索漏洞复现
  15. Reso | mysql、SQLServer、Oracle的区别
  16. 在本计算机无法启动用友通服务器,用友T3客户端提示用友通服务没有启动?
  17. 禁用键盘快捷键_如何在Windows中使用键盘快捷键临时禁用键盘
  18. Java的特征/特点(全)
  19. mybatis反向生成实体类、dao层以及映射文件
  20. ps抠图、抠头发去背景等

热门文章

  1. 华为手机解析出现问题
  2. 六年级计算机课件,六年级信息技术上册课件.ppt
  3. c语言字符大于等于怎么打,c语言大于等于怎么打?
  4. ORACLE11g数据库安装-刘建-专题视频课程
  5. element Descriptions 内容超出隐藏 Tooltip展示完整内容
  6. Error:field larger than field limit(131072)解决方法
  7. 基于 Verilog 的经典数字电路设计(10)三态门
  8. mac 安装virtualbox虚拟机
  9. HttpClient Cookie rejected警告
  10. 前端工程师推荐浏览器