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

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 :

【1】python-正则表达式语法规范与案例的更多相关文章

  1. python的语法规范及for和while

    1.缩进: 空白在Python中是重要的.事实上行首的空白是重要的.它称为缩进.在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组.这意味着同一层次的语句必须有相同的缩进 ...

  2. Python正则表达式语法

    单个字符匹配 字符 匹配 . 匹配任意字符(除了\n) [...] 匹配字符集 \d/\D 匹配数字/非数字 \s/\S 匹配空白/非空白字符 \w/\W 匹配单词字符[a-zA-A0-9] In [ ...

  3. Python 正则表达式语法实例

  4. python 正则表达式语法

  5. Python 正则表达式模块 (re) 简介

    Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,和 Perl 脚本的正则表达式功能类似,使用这一内嵌于 Python 的语言工具,尽管不能 ...

  6. Python正则表达式 学习笔记

    python第一个正则表达式 1. import re : python正则表达式模块 2. 第一个正则表达式 re.compile(r'imooc') pattern.match('imooc py ...

  7. Python基础语法07--面向对象+正则表达式

    Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...

  8. python基础语法及知识点总结

    本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...

  9. java正则表达式语法详解及其使用代码实例

    原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...

随机推荐

  1. linux 权限详解

    转载自博客园: http://www.cnblogs.com/123-/p/4189072.html 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所 ...

  2. hadoop学习笔记(九):MapReduce程序的编写

    一.MapReduce主要继承两个父类: Map protected void map(KEY key,VALUE value,Context context) throws IOException, ...

  3. Springboot --- Spring Security (一)

      文章部分图片来自参考资料 问题 : Spring Security 内部实现的原理是什么 概述 Spring Security 是个安全框架,可以提供认证,防止网络功能等功能,可以结合 sprin ...

  4. Centos系统下卸载、安装MySQL及用户的创建、授权和使用(详细。。。。)

    由于经常使用linux系统,并且大数据环境搭建中经常会使用到mysql,不像windows系统下的安装,今天有点空写一篇,下面我给大家演示一遍. 主要有三部分内容: 1.MySQL的卸载 2.MySQ ...

  5. 如何向Maven仓库(私服)中上传第三方jar包

    本文详细介绍如何向maven仓库中上传第三方jar包. 1.在本地maven安装路径中找到conf文件夹下面的setting.xml文件,里面有访问maven仓库的路径和账号.密码: 2.浏览器打开第 ...

  6. JAVA非静态成员变量之死循环

    1.非静态成员变量 当成员变量为非静态成员变量且对当前类进行实例化时,将会产生死循环 例子: public class ConstructorCls { private ConstructorCls ...

  7. 拜拜了,浮动布局-基于display:inline-block的列表布局——张鑫旭

    一.一抹前言 没有爱的日子,时间如指尖细沙,不知不觉就流逝了.写“CSS float浮动的深入研究.详解及拓展(一)”和“CSS float浮动的深入研究.详解及拓展(二)”似乎就在不久前,然而相隔差 ...

  8. 深入浅出图解【计算机网络】 之 【TCP可靠传输的实现2: 超时重传+拥塞控制】

    [前言]上一篇文章介绍了关于TCP的基础知识,以及建立(释放)连接和滑动窗口的概念. 本篇文章将延续上一篇的思路,继续介绍TCP实现可靠传输的机制. 超时重传 上一篇文章里介绍过TCP采用停止等待协议 ...

  9. 通过UA判断,对滚动条样式进行不同的操作

    浏览器滚动条的默认样式比较丑,有些情况下,又不能直接overflow:hidden掉. 本文阐述如何通过 document.styleSheets[0].insertRule 简单的实现pc端和移动端 ...

  10. FFmpeg实现将图片转换为视频

    ##名称:ffmpeg实现将图片转换为视频 ##平台:ubuntu(已经安装好了ffmpeg工具) ##日期:2017年12月10日 简介: 因为学习需要,需要将连续图片转换成视频,昨天和今天早上用o ...