Python正则表达式初识(五)
正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识。今天要给大家的讲的特殊字符是竖线“|”。竖线“|”实质上是一个或的关系。
1、直接上代码演示,比方说我们需要匹配一个字符串“dcpeng123”,匹配模式为 “(dcpeng|dcpeng123)”,记得匹配模式中要有括号,否则后面的group方法会报错。
如上图所示,匹配模式“(dcpeng|dcpeng123)”的意思是只要匹配“dcpeng”或者“dcpeng123”中的任意一个,就说明提取成功。“|”实质上是一个“或”的关系,匹配的结果为“dcpeng”可以满足匹配条件,匹配的结果为“dcpeng123”也可以满足匹配条件。所以在这里,正则表达式首先匹配了字符串“dcpeng”,所以打印出来的结果就是“dcpeng”。
2、当我们把匹配模式中两个字符串的顺序调整一下,如下图所示。
根据第一步的分析步骤,其匹配结果为“dcpeng123”,在此就不再赘述了。
3、如果我们将原始字符串做一下更改,更改为“dcpeng”,而保持匹配模式不变,如下图所示。
此时的匹配结果为“dcpeng”。原因是匹配模式首先是“dcpeng123”,与原始字符串匹配不上,之后通过特殊字符“|”再定位到“dcpeng”,发现可以与原始字符串匹配上,所以匹配成功,输出匹配结果。
4、如果我们只是想匹配字符串中的一部分,那应该如何做呢?如下图所示,只需要将匹配模式用括号括起来就可以了,而括号外面的部分保持与原始字符串一致即可。
此时可以看到输出的结果为“dcpeng”。这里容易犯错,很多小伙伴很可能以为结果是“dcpeng123”,只需要记住我们匹配的内容只是在括号中,外边的世界与我们无关。
同样的,如果我们将原始字符串改为“dccpeng123”,保存匹配模式不变,此时的匹配结果为“dccpeng”,如下图所示。
5、如果真想匹配到外边的结果,就应该再加一层括号,将外边的内容与括进来,入下图所示。当程序运行之后,我们得到的匹配结果是“dccpeng123”。
当程序运行之后,实际上是以最外层的这个括号为顺序的,然后依次向内进行匹配。当group方法中取第一个括号的内容时,匹配到的结果是最外层括号中的内容,所以是“dccpeng123”。可以看到“123”也被提取出来了。
同理,当group方法中取第二个括号的内容时,匹配到的结果是最二层括号中的内容,所以是“dccpeng”,如下图所示。
此时可以看到“123”并没有被提取出来,因为此时匹配的内容是“(dcpeng|dccpeng)”。
关于在括号中提取子字符串的用法在网络爬虫中非常常见,也是Python正则表达式的重点学习内容,需要重点掌握。
Python正则表达式初识(五)的更多相关文章
- Python正则表达式初识(十)附正则表达式总结
今天分享正则表达式最后一个特殊字符“\d”,具体的教程如下. 1.特殊字符“\d”十分常用,其代表的意思是数字.代码演示如下图所示. 其中“+”的意思是表示连续,在这里代表的意思是连续的数字.但是输出 ...
- Python正则表达式初识(二)
前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符“^”.“.”和“*”,感兴趣的伙伴可以戳进去看看,今天小编继续给大家分享Python正则表达式相关特殊字符知识点. ...
- Python正则表达式初识(九)
继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是[\u4E00-\u9FA5],这个特殊字符最好能够记下来,如果记不得的话通过百度也是可以一下子查到的. 该特殊字符是固定的写法,其 ...
- Python正则表达式初识(八)
继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是“\w”和“\W”,具体的教程如下. 1.“\w”代表的意思是该字符为任意字符,但是和特殊字符“.”的意思不同.“\w”代表的字符主 ...
- Python正则表达式初识(七)
继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是“\s”.“\S”,具体的教程如下. 1.“\s”代表的意思是匹配空格,匹配模式“加\s油”代表的是字符“加”和“油”之间有空格的意 ...
- Python正则表达式初识(六)
继续分享Python正则表达式基础,今天给大家分享的正则表达式特殊符号是“[]”.中括号十分实用,其有特殊含义,其代表的意思是中括号中的字符只要满足其中任意一个就可以.其用法一共有三种,分别对其进行具 ...
- Python正则表达式初识(四)
今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下. 特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种 ...
- Python正则表达式初识(三)
前几天给大家分享了Python正则表达式基础(一)和Python正则表达式基础(二),感兴趣的小伙伴可以点击进去学习,今天继续给大家分享Python正则表达式基础. 1.正则表达式特殊字符“+”,其代 ...
- Python正则表达式初识(一)
首先跟大家简单唠叨两句为什么要学习正则表达式,为什么在网络爬虫的时候离不开正则表达式.正则表达式在处理字符串的时候扮演着非常重要的角色,在网络爬虫的时候也十分常用,大家可以把它学的简单一些,但是不能不 ...
随机推荐
- 笔记本win2008 r2的hyper-v安装centos
一.i5以上cpu支持虚拟化,不过默认是关闭的,先到bios设置里把虚拟功能打开: 二.“服务器管理器”->“角色”里安装hyper-v并重启: 三.设置无线网络桥接,有线就不需要了,具体如下: ...
- Docker和虚拟机的区别
这是docker官网的图,可以看到虚拟化技术通过Hypervisor(虚拟机管理系统)为每个app启动一个Guest OS(客户机操作系统),也就是为每个app启动一个虚拟机.比较直观地说,vm通过H ...
- APP-午饭去哪吃
走到这个快节奏的城市中.部门聚餐.朋友吃饭这些都是日常生活中时有发生的事情,往往吃的东西都是千篇一律,图的也仅仅剩下的是环境了.那么.非常纠结常常去的地方,怎么办呢?来吧.我们随机摇一个吧! wate ...
- 改动Android设备信息,如改动手机型号为iPhone7黄金土豪版!
首先你的手机必需要有ROOT权限,误操作有风险需慎重 请先开启手机的USB调试,防止手机改动后无法启动时导致的无法修复 1.假设你是在手机上改动,直接使用RE文件管理器,编辑/system/build ...
- 海思 3520D 移植Qt4.5.3 一
一.移植Qt4.5.3 1.获得 Qt4.5.3 的源码Qt4.5.3源码的原始包 qt-embedded-opensource-src-4.5.3.tar.gz 将其复制到 /opt 下, ...
- HTML5_Web_SQL_Database数据库
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiEAAAEGCAIAAAA8NNLDAAAgAElEQVR4nOxdd5hcVdk/SUgghCSEhC ...
- php中的页面跳转和重定向
php中的页面跳转和重定向 ThinkPHP中跳转和重定向的区别 跳转: 浏览器认为: 当前URL请求成功, 重新请求新的URL. 浏览器会 记录当前的URL 和 新的URL 在请求历史记录中. 回退 ...
- 启动hadoop遇到的datanode启动不了
从截图上看是datanode的clusterID 和 namenode的clusterID 不匹配. 解决办法: 根据日志中的路径,cd /hadoop/data/dfs/ 能看到 data和name ...
- sql sever 创建临时表的两种方法
创建临时表 方法一: create table #临时表名( 字段1 约束条件, 字段2 约束条件, .....) ...
- echarts 总结:
options配置项: title: 图表标题的配置 tooltip: 鼠标悬浮的提示 toolbox: 工具栏 series: 数据项,是每一个个的数据对象,可以根据type配置每一项数据的图例. ...