正则表达式的内容很丰富,今天小编继续给大家分享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正则表达式的重点学习内容,需要重点掌握。

最新文章

  1. 在真机调试 iOS 应用:理解 Certificates, Identifiers & Profiles
  2. JavaScript进阶之DOM
  3. Windows 64位 RabbitMQ 安装配置
  4. 最大乘积 Maximun Product
  5. LoadRunner学习记录--Flights打开空白页的问题
  6. vc关于文件拷贝
  7. ubuntu导出文件
  8. Orace数据库锁表的处理与总结<摘抄与总结一>
  9. 【转】Android 之 下拉框(Spinner)的使用
  10. Android推断程序前后台状态
  11. 关于Redis数据库 ---- 基础篇
  12. elementui+vuejs如何添加表格操作按钮
  13. ASP.NET基础知识汇总之WebConfig自定义节点详细介绍
  14. FEX(Fabric Extender)
  15. <ROS> 机器人描述--URDF和XACRO
  16. csharp: FTP Client Library using System.Net.FtpClient and FluentFTP,测试中存在的BUG修正
  17. centos7下安装nginx的方法
  18. 树莓派学习笔记(4):利用yeelink实现在线硬件状态监控
  19. python全栈开发之正则表达式和python的re模块
  20. appium简明教程(9)——如何获取android app的Activity

热门文章

  1. 【图灵杯 J】简单的变位词
  2. 【每日一记】unity3d 图片置灰shader
  3. 上传canvas图片到服务器
  4. 【金阳光測试】基于控件核心技术探讨---Android自己主动化系列(2)---2013年5月
  5. nj10---文件读取
  6. thinkphp5项目--个人博客(三)
  7. A string is a sequence
  8. WHERE、ORDER BY、GROUP BY、HAVING语句解析(二十八)
  9. 【DotNetNuke介绍】
  10. SharePoint 学习快速导航