原标题: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正则表达式初识(五)相关推荐

  1. python正则匹配_Python正则表达式只匹配一次

    我正在尝试创建一个简单的降价乳胶转换器,只是为了学习 python和基本的正则表达式,但我不知道试图弄清楚为什么下面的代码不起作用: re.sub (r'\[\*\](.*?)\[\*\]: ?(.* ...

  2. python正则匹配_python 正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  3. python正则匹配_Python正则表达式详解

    正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述.匹配某个句法规则的字符串,常被用来检索.替换那些符合某个模式(规则)的文本.最初的正则表达式出现于理论计算机 ...

  4. python正则判断_Python 正则表达式

    一.基础语法 1.1 语法速查 1.2 最简单的正则匹配 学习正则一般是从 match 和 search 函数开始,推荐教程. match match(pattern, string) 函数会从字符串 ...

  5. python正则库_python 正则表达式第三方库 re的基本使用

    re模块简介: 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,而re模块就是python中实现正则的模块 正则表达式简介: 非打印字符: 非打印字符也可以是正则表达 ...

  6. python正则判断_python正则表达式

    python要用正则要导入re包 . (点) 在默认模式,匹配除了换行的任意字符.如果指定了标签 DOTALL ,它将匹配包括换行符的任意字符. ^ (插入符号) 匹配字符串的开头, 并且在 MULT ...

  7. python 正则匹配png_正则表达式筛选出jpg、png的图片url

    有些字符串也不是富文本,也不是带标准标签的图片地址和文字.想筛选出所有图片或地址怎么办呢.话不多说直接上带码. private static void reg() { // TODO Auto-gen ...

  8. python正则表达式匹配数字或者逗号_python正则表达式去掉数字中的逗号(python正则匹配逗号)...

    分析 数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式[a-z]+,[a-z]? import re sen = "abc,123,456,789,mnp ...

  9. python数据匹配_python 匹配@

    正则查找相关的方法 | 手把手教你入门Python之八十五 上一篇:正则表达式简介 | 手把手教你入门Python之八十四下一篇:Re.Match类的介绍 | 手把手教你入门Python之八十六 本文 ...

最新文章

  1. Go 学习笔记(53)— Go 标准库之 path(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则)
  2. Android下PopupWindow隐藏及显示(showAtLocation/showAsDropDown)
  3. 加班越久故障越多,如何跳出程序员的恶性循环?
  4. java子网划分_子网划分讲解及练习(二)
  5. 微信小游戏复活了传统PC游戏
  6. timedatectl使用
  7. halcon/c++接口基础 之异常处理
  8. Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)
  9. CSS reset的重新审视 – 避免样式重置
  10. gcc: internal compiler error: Killed (program cci)错误
  11. 职称计算机excel2015年,2015年职称计算机《Excel2003》最新章节练习题(5)
  12. cmd合并多个ts文件,ffmpeg快速转ts为mp4文件,通过m3u8合并文件
  13. R语言ETL工程:集合运算(intersect/union/setdiff)
  14. devc 能优化吗_Devc 、一元多项式的加法、减法、乘法的实现 【问题描述】 设有 联合开发网 - pudn.com...
  15. android镜子app,Android镜子应用 一面可编程的镜子
  16. 正式“退休”的Flash,未来我们会怀念它吗?
  17. SQL分组排序函数(组内分别排序)
  18. 软考易错知识点(自用)
  19. python 爬虫小案例 8684网站爬取北京公交路线站点信息。
  20. 毛球科技论述区块链之符号理论(上)

热门文章

  1. [Eclipse] - Eclipse空格替换tab
  2. 三、查找、替换、定位
  3. Cocos2d-x 3.0 rc0中加入附加项目,解决无法打开包括文件:“extensions/ExtensionMacros.h”...
  4. C++ cctype定义的函数 - 学习笔记(7)
  5. Calc3: Geometrics
  6. 大数据计算引擎发展的四个阶段
  7. linux下的基础操作
  8. mysql数据库---授权语句以及备份
  9. 工作一年的状态与总结
  10. sql中like带参数的写法