专栏首页python3【1】python-正则表达式语法规范与

【1】python-正则表达式语法规范与

正则表达式的用法与案例分析

2018-08-24 21:26:14

【说明】:该文主要为了随后复习和使用备查,由于做了word文档笔记,所以此处博文没有怎么排版,没放代码,以插入图片为主,

  • 一、正则表达式之特殊字符

注意: 以下的案例中是match()匹配,match是要求从第一个字符开始匹配,所以,前边是有.*

  • 【1】^ 作用- 以b 开头匹配的结果
  • 【2】$ 作用-任意开头,以3结尾

注意:下边这种是不行的,如果没有*号,就不表示多次了。

表示4为匹配第三位的。点是匹配第二位的。

  • 【3】?的作用
  • (1)贪婪匹配默认是反向匹配的 贪婪匹配下,是从后往前 开始匹配的。如下例子。
  • (2)、在左边加一个?号则正向匹配
  • 在左边 加一个?的话,就会从左往右开始匹配。是非贪婪匹配了,但是括号里面的仍然是贪婪匹配。【即从左匹配,第一个b被固定了,但是括号里的第二个b还是从右开始匹配,。*再输出中间的一切内容。】

(3)、在括号里也添加括号,进行非贪婪匹配

#技巧:括号里是有问好的,所以在第一个b 确定下后 .*?b是从左往右的 # 输出是:boooooob

  • 【4】、+的作用
  • 简述以上?的原理 其实,上边说的从左从右匹配都是一种技巧的规则,其实完全可以按照下边的这三个符号的含义来解释。 *表示0次或者多次 +表示1次或者多次 ?0次或者是1次
  • 比如: Line=”booooooobbaaa” pattern=“.*(b.*b)”这里的两处.*都是贪婪匹配模式的,小括号中的.*【由于*是表示0/1次,】所以匹配出黄色部分的bb。
  • +的作用: +其实是表示1次或者是多次的匹配模式的。 比如:对于以下 Line=”booooooobbaaa” pattern=“.*(b.+b)”就无法匹配成功,因为.+是至少要匹配1个元素的,那么开头结尾都是b,中间还要一个元素的情况是没有的。 那么比如: Line=”booooooobabaaa” pattern=“.*(b.+b)” 就匹配出了结果是bab
  • 【案例分析】
  • (1)
  • (2)

(3)

  • 【5】、{2}的作用、 {1}  {2}  表示某一个限定元素的出现此时。 案例分析:
  • (1)

(2)

  • (3)
  • 【6】、{2,}&&{2,5}
  • 1、{2,}表示两次或以上的输出

{2,5} Y与上边原理相同,表示,大于等于2 小于等于5

  • 【7】、| 的用法
  • 这个符号代表或的关系。

特殊括号的用法

输出boobb123

  • 【8】、[ ]的用法
  • 《1》[ ]第一个用法表示中括号中的任意一个值满足就进行匹配操作。
  • 案例如下:

《2》[0-9]中括号的第二个含义,可以表示区间。

  • 比如说匹配电话号码: Phone_num_pattern=”1[3578][0-9]{9}” 表示,可以匹配13*****  /15*****/17*************/18***********的电话号码,后边九位是0—9任意,{9}表示9个数字

《3》[^1] 的第三个用法。表示中括号的值不是1 的所有情况匹配

《4》[]的第四个用法 [.]中的.就表示一个点了。

  • 【9】、\s(小)表示可以匹配空格字符
  • \s 是匹配空白字符

【10】、\S(大) 是匹配除了换行的任何非空白字符的

如果您好中间有多个字符可以用 “(您\S+好)”进行匹配来完成

  • 【11】、\w 的用法  【重点】------是与\S(大)比较相似
  •  \w 的含义是[A-Za-z0-9_]    是与\S有区别的,比如\S是可以匹配到+号的
  • 【12】、\W 是表示除了[A-Za-z0-9_]之外的所有字符
  • \W 是表示除了[A-Za-z0-9_]之外的所有字符,它恰好与\w相反的一个匹配功能。
  • 【13】、Unicode汉字的提取
  • 提取代码是 [\u4E00-\u9FA5]+
  • 【14】、再次理解贪婪匹配
  • 【15】 \d 的用法 是提取出数字
  • 【16】、()表示一个组。
  • 总结:正则表达式汇总表
  • 总结案例:【经典案例】
  • 案例一:

案例2 :

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 模糊匹配:glob, re

    ''' fnmatch模块: 提供对Unix Shell通配符的支持 Pattern Meaning  *       matches everythi...

    py3study
  • python爬虫之解析库正则表达式

    py3study
  • Python3快速入门(七)——Pyth

    re 模块提供 Perl 风格的正则表达式模式,使 Python 语言拥有全部的正则表达式功能。

    py3study
  • 匈牙利算法

    二分图:又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边所关联的两个顶点i...

    五分钟学算法
  • 美国最大婚恋交友网站eHarmony的机器学习实践

    用户1737318
  • python中正则表达式的学习

    我们以match_str=”abcdefghc“、pattern=”a.*c”例,

    菜鸟小白的学习分享
  • 还不会正则表达式?看这篇!

    正则表达式是很多程序员,甚至是一些有了多年经验的开发者薄弱的一项技能。大家都很多时候都会觉得正则表达式难记、难学、难用,但不可否认的是正则表达式是一项很重要的技...

    Nealyang
  • 正则表达式符号代表的意义

    无邪Z
  • 还不会正则表达式?看这篇!

    正则表达式是很多程序员,甚至是一些有了多年经验的开发者薄弱的一项技能。大家都很多时候都会觉得正则表达式难记、难学、难用,但不可否认的是正则表达式是一项很重要的技...

    ConardLi
  • 还不会正则表达式?看这篇!

    正则表达式是很多程序员,甚至是一些有了多年经验的开发者薄弱的一项技能。大家都很多时候都会觉得正则表达式难记、难学、难用,但不可否认的是正则表达式是一项很重要的技...

    MudOnTire

扫码关注云+社区

领取腾讯云代金券