第11.22节 Python 中re模块的字符串分割器:split函数
一、 引言
在《第11.2节 Python 正则表达式支持函数概览》介绍了re模块的主要函数,在《第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer》重点介绍了几个搜索函数,后续章节将介绍re模块的其他函数,本节先介绍re.split函数的功能。
二、 语法释义
- 调用语法:
re.split(pattern, string, maxsplit=0, flags=0) - 参数及返回结果释义:
1)这个函数的功能与字符串的split方法有些类似,只是字符串内split是固定分隔符,而这是用 正则表达式来分开 string,分开的字符存放在返回的列表元素内。
2)如果在 pattern 对应正则表达式中存在元字符“()”,且能匹配到搜索文本,那么每个匹配组里的字符也会按顺序包含在列表的单独元素里。
3)如果 maxsplit 非零, 最多进行 maxsplit 次分隔, 剩下的字符全部返回到列表的最后一个元素。 - 注意:如果在string的结尾或开头能匹配pattern,则会在返回列表的最后一个元素或第一个元素是空字符串。
三、 案例
>>> re.split('\W+','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress!')
['Learning', 'Python', 'with', 'LaoYuan', 'LaoYuanPython', 'accompanies', 'you', 'to', 'progress', '']
>>> re.split('(\W+)','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress!')
['Learning', ' ', 'Python', ' ', 'with', ' ', 'LaoYuan', ',', 'LaoYuanPython', ' ', 'accompanies', ' ', 'you', ' ', 'to', ' ', 'progress', '!', '']
>>>
上述案例中的匹配模式就是搜索非单词字符作为分隔符(请参考《第11.15节 Python正则表达式转义符定义的特殊序列》),第一个语句是没有组匹配模式,返回列表的最后一个元素为空字符串,第二个是有组匹配模式,所有非单词字符都被作为列表的元素返回了。
我们再看一个案例:
>>> re.split('(\W*)','Hello,world')
['', '', 'H', '', 'e', '', 'l', '', 'l', '', 'o', ',', '', '', 'w', '', 'o', '', 'r', '', 'l', '', 'd', '', '']
结果是不是很意外?请大家思考一下为什么会这样。具体分析请参考《Python正则表达式W+和W*匹配过程的深入分析》。
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!
第11.22节 Python 中re模块的字符串分割器:split函数的更多相关文章
- 第11.23节 Python 中re模块的搜索替换功能:sub及subn函数
一. 引言 在<第11.3节 Python正则表达式搜索支持函数search.match.fullmatch.findall.finditer>重点介绍了几个搜索函数,除了搜索,re模块也 ...
- 第11.18节 Python 中re模块的匹配对象
匹配对象是Python中re模块正则表达式匹配处理的返回结果,用于存放匹配的情况.老猿认为匹配对象更多的应该是与组匹配模式的功能对应的,只是没有使用组匹配模式的正则表达式整体作为组0. 为了说明下面的 ...
- 第11.24节 Python 中re模块的其他函数
一. re.compile函数 正则表达式编译函数,在后面章节专门介绍. 二. re.escape(pattern) re.escape是一个工具函数,用于对字符串pattern中所有可能被视为正则表 ...
- 第7.22节 Python中使用super调用父类的方法
第7.22节 Python中使用super调用父类的方法 前面章节很多地方都引入了super方法,这个方法就是访问超类这个类对象的.由于super方法的特殊性,本节单独谈一谈super方法. 一.su ...
- 第11.20节 Python 中正则表达式的扩展功能:后视断言、后视取反
一. 引言 在<第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反>中老猿介绍了前视断言和前视取反,与二者对应的还有后视断言和后视取反. 二. (?<=-)后视 ...
- 第11.21节 Python 中正则表达式的其他扩展功能
一. 引言 在<第11.17节 Python 正则表达式扩展功能:命名组功能及组的反向引用>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是正则表达式的扩展功能,其实在re模块中 ...
- 第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反
一. 引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是组模式的扩 ...
- Python中通过多个字符分割(split)字符串的方法
python中字符串自带的split方法一次只能使用一个字符对字符串进行分割,但是python的正则模块则可以实现多个字符分割 import re re.split('-|_','sharejs_ha ...
- Python中通过多个字符分割(split)字符串的方法--转载
Python中字符串自带的split方法一次只能使用一个字符对字符串进行分割,但是python的正则模块则可以实现多个字符分割 import re re.split('_#|','this_is#a| ...
随机推荐
- 【SpringBoot】03.SpringBoot整合Servlet的两种方式
SpringBoot整合Servlet的两种方式: 1. 通过注解扫描完成Servlet组件注册 新建Servlet类继承HttpServlet 重写超类doGet方法 在该类使用注解@WebServ ...
- python爬虫01在Chrome浏览器抓包
尽量不要用国产浏览器,很多是有后门的 chrome是首选 百度 按下F12 element标签下对应的HTML代码 点击Network,可以看到很多请求 HTTP请求的方式有好几种,GET,POST, ...
- 9 HTTP和HTTPS
9 HTTP和HTTPS 状态码 定义 1xx 报告 接收到请求,继续进程 2xx 成功 步骤成功接收,被理解,并被接受 3xx 重定向 为了完成请求,必须采取进一步措施 4xx 客户端出错 请求包括 ...
- python代码实现抢票助手
一. 代码使用Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互. 二. 安装好Python 3或2都可以 ...
- Linux内核调度分析(转,侵删)
多任务 并发和并行 Linux作为一个多任务操作系统,必须支持程序的并发执行. 分类 非抢占式多任务 除非任务自己结束,否则将会一直执行. 抢占式多任务(Linux) 这种情况下,由调度程序来决定什么 ...
- python dvwa布尔盲注自动化脚本(level=low)
仅供学习代码参考 1#python dvwa布尔盲注自动化脚本 2 import requests 3 import string 4 import time 5 INIT_URL="htt ...
- Linux安装JAVA并且配置环境
在写之前我先说一下我遇到的坑,我在配置环境的时候由于/etc/profile文件没有配置好导致系统彻底坏掉 1.ls vi等等命令使用不了,报错说找不到命令 2.在重启后虚拟机不能进入桌面 1.下载j ...
- redmine系统部署
1.下载railsinstaller.注意版本,我用的是老版的 railsinstaller-3.2.0.exe 下载地址 http://railsinstaller.org/en 国外的网站比较慢, ...
- [JLOI2011]飞行路线 题解
[JLOI2011]飞行路线 题解 题目TP门 题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有 ...
- ATT&CK模型
Credential Dumping(凭证窃取) Dump credentials from LSASS(从LSASS中窃取凭证) 实现原理: This technique injects into ...