《Python Cookbook v3.0.0》Chapter2 字符串、文本
感谢:
https://github.com/yidao620c/python3-cookbook
如有侵权,请联系我整改。
本文章节会严格按照原书(以便和原书对照,章节标题可能会略有修改),内容会有增删。
2.4 字符串匹配和搜索
text.startswith()
以xxx开头,
text.endswith()
以xxx结尾,
text.find()
查找xxx的位置,返回下标,
复杂匹配可以用re
,
import re
示例,
>>> text
'today is 11/27/2012. pycon starts 3/13/2013.'
>>> datepat = re.compile(r'(\d+)/(\d+)/(\d+)')
>>> datepat
re.compile('(\\d+)/(\\d+)/(\\d+)')
>>> datepat_no_capture = re.compile(r'\d+/\d+/\d+')
>>> datepat_no_capture
re.compile('\\d+/\\d+/\\d+')
>>> datepat.findall(text)
[('11', '27', '2012'), ('3', '13', '2013')]
>>> datepat_no_capture.findall(text)
['11/27/2012', '3/13/2013']
re.compile
预编译为模式对象,效率更高,
注意,datepat
和datepat_no_capture
的差异,前者带()
,后者没有,
带()
意味着捕获分组
,结果以tupple
形式返回,以便对每一项做后续处理
在正则表达式中,
r
,表示原始字符串,否则反斜杠也需要转义,'(\\d+)/(\\d+)/(\\d+)'
除了findall()
,match()
可以用来从头(起始)匹配,尾部不管,
示例,
>>> datepat.match('11/27/2012')
<re.Match object; span=(0, 10), match='11/27/2012'>
>>> datepat.match('x11/27/2012')
>>> datepat.match('11/27/2012x')
<re.Match object; span=(0, 10), match='11/27/2012'>
《Python Cookbook v3.0.0》Chapter2 字符串、文本的更多相关文章
- 《Python Cookbook v3.0.0》Chapter1 数据结构和算法
感谢: https://github.com/yidao620c/python3-cookbook 如有侵权,请联系我整改. 本文章节会严格按照原书(以便和原书对照,章节标题可能会略有修改),内容会有 ...
- 【python cookbook】【字符串与文本】11.从字符串中去掉不需要的字符
问题:在字符串的开始.结尾或中间去掉不需要的字符,比如说空格符 解决方案: 1.字符串开始或结尾处去掉字符:str.strip() 2.从左或从右侧开始执行去除字符:str.lstrip().str. ...
- FineUI(专业版)v3.2.0 发布(ASP.NET UI控件库)!
+2016-08-20 v3.2.0 +表格增强. +表格列RenderField增加属性ClientHtmlEncode,用于在客户端进行HTML编码. -增加示例:单元格编辑->杂项-> ...
- Python学习笔记(0)
Python 是什么类型的语言 Python是脚本语言 Python下载地址:https://www.python.org/downloads/ Python版本:Python 3.4.2 - 64b ...
- Python并发编程-redis-3.0.5 源码安装
1.简介 Remote Dictionary Server(Redis)是一个基于 key-value 键值对的持久化数据库存储系统.redis 和 Memcached 缓存服务很像,但它支持存储的 ...
- Android 百度地图 SDK v3.0.0 (三) 加入覆盖Marker与InfoWindow使用
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/37737213 上篇博客已经实现了地图的定位以及结合了方向传感器用户路痴定位方向, ...
- 【推荐】.NETCore 简单且高级的库 csredis v3.0.0
前言 .NETCore 从1.0发布历经坎坷,一开始各种库缺失到现在的部分完善,走到今天实属不易. 比如 redis-cli SDK 简直是坑出不穷. 过去 .net 最有名望的 ServiceSta ...
- python中None与0、Null、false区别
None是Python中的一个关键字,None本身也是个一个数据类型,而这个数据类型就是None,它可0.空字符串以及false均不一样,这些都只是对象,而None也是一个类. 给个bool测试: v ...
- python调用虹软2.0(全网首发)-更新中
python调用虹软2.0目前没有任何demo可以参考,自己研究了2个晚上终于把第一步做出来了,使用了opencv来加载和显示图片,龟速更新中 这一版作废,新版已发出:https://www.cnbl ...
随机推荐
- Docker搭建Prometheus+grafana监控系统
一.Prometheus简介 1.简介 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB). Prometheus使用Go语言开发,是Google BorgM ...
- Linux:linux下解压*压缩tar.xz、tar、tar.gz、tar.bz2、tar.Z、rar、zip、war等文件方法
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 ------------------------------------------ 这 ...
- XCTF csaw2013reversing2
题目描述:听说运行就能拿到Flag,不过菜鸡运行的结果不知道为什么是乱码 一.先运行看看. 果然乱码. 二.查壳 三.是pe文件,可以拖入od和ida进行动态和静态分析. 1.对主函数进行反编译一下. ...
- Java 内存泄漏知多少?
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 面试的时候内存管理是不是很多面 ...
- gitlab部署及汉化
目录 Git 简介 部署 1. 配置yum源(推荐) 2. 安装 配置GitLab 1.加载配置 2.修改git默认访问端口 gitlab.rb unicorn.rb gitlab-http.conf ...
- Git远程操作详解(clone、remote、fetch、pull、push)
https://blog.csdn.net/u013374164/article/details/79091677 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...
- 解决 centerOS7部署ajango2.2.x版本 报SQLite 3.8.3 or later is required (found 3.7.17).错误
在CentOS7上部署Django的时候,遇到了一些问题,写篇笔记记录解决过程. 报错信息 当python3 manage.py runserver启动django项目的时候,就会出现报错信息如下: ...
- POJ1934 Trip 题解
LCS 模板,但要输出具体方案,这就很毒瘤了. 神奇的预处理:fa[i][j]表示在 \(a\) 串的前 \(i\) 个字符中,字母表第 \(j\) 个字母最晚出现的位置,fb[i][j]同理. 这样 ...
- IBM java开发面试题
1.commite在什么场合使用 svn 提交项目 数据库自动提交 Oracle手动,mysql自动 2.void(0)怎么使用 html界面 <a href="javaScript ...
- 深入刨析tomcat 之---第7篇 这个是链接,如果使用idea 创建servlet工程
recoded by 张艳涛 使用IDEA创建Servlet项目 使用IDEA创建Servlet项目