详Python正解则表达式模块

  

由于最近需要使用爬虫爬取数据进行测试,所以开始了爬虫的填坑之旅,那么首先就是先系统的学习下关于正则相关的知识啦。所以将下面正则方面的知识点做了个整理。语言环境为Python。主要讲解下Python的再保险模块。

  

下面的语法我就主要列出一部分,剩下的在python官网直接查阅即可:docs.python.org/3/library/r…

  

  

<强> 1.1,匹配单个字符

  

<代码>。\ d \ d \ w \ w \ s \ […][^…]

  

匹配单个字符(.)

  

规则:匹配除换行之外的任意字符
  

        在[24]:re.findall (“f。o”、“foo不是粮农组织”)   [24]:[“foo”、“粮农组织”]      

匹配任意(非)数字字符(\ d \ d)

  
  

\ d ,[0 - 9]
  \ D ,(^ 0 - 9)

     

匹配任意(非)普通字符(\ w \ w)

  
  

\ w普通字符包括[_0-9A-Za-z]同时也包括汉字
  \ W非普通字符

     

匹配任意(非)空字符(\ \年代)

  
  

\ s匹配任意空字符,[t \ r \ n \]
  \ S匹配任意非空字符

     

匹配字符集合([…])

  

<代码> [a - z] [a - z] [0 - 9] [_123a-z]

  

匹配字符集([^…])

  

规则:字符集取非,除列出的字符之外的任意一个字符
  

  

<代码> [^ abc]——比;除a b c之外任意字符

  

<强> 1.2,匹配多个字符

  
  

*匹配0次或者多次
  +匹配1次或者多次
  & # 63;匹配0次或1次者
  {男}匹配m次
  {m, n}匹配m次到n次区间内的任意一次

     

<强> 1.3,匹配位置

  
  

^匹配开始位置
  美元的匹配结束位置
  \一匹配开始位置
  \ Z匹配结束位置
  \ b匹配单词边界位置(一般用于首字母大写的匹配)
  \ B匹配非单词边界问题

     

<强> 1.4,转义

  

在正则表达式中有一类特殊字符需要转移,只需要在特殊字符之间加上\表示转移即可

  

<代码>。* + & # 63;^ $[]{}()| \

  

<强> 1.5,子组

  

使用()可以为正则表达式建立内部分组,子组为正则表达式的一部分,可以看做一个内部整体。

        在[61]:re.search (r”http (https | | ftp): \/\/\ w + \ \ w + \。(com | cn)”,“https://www.baidu.com”) .group (0)   [61]:“https://www.baidu.com”   在[62]:re.search (r”http (https | | ftp): \/\/\ w + \ \ w + \。(com | cn)”,“https://www.baidu.com”) .group (1)   [62]:“https”      

<强> 1.6,贪婪模式和非贪婪模式

  

正则表达式的重复匹配总是尽可能多的向后匹配更多的内容。贪婪模式包括:* + & # 63;{m, n}

  

非贪婪模式:尽可能少的匹配内容贪婪模式转换为非贪婪模式:* & # 63;+ & # 63;& # 63;& # 63;{m, n} & # 63;

        在[106]:re.findall (r“ab + & # 63;”、“abbbbbbbb”)   出[106](“ab”):   在[107]:re.findall (r“ab # 63; & # 63;”、“abbbbbbbb”)   出[107]:[a]      

  

详Python正解则表达式模块“> <br/>
  </p>
  <p>接下来我所有函数里面的参数解释如下:</p>
  <blockquote>
  <p>模式:正则表达式<br/>
  字符串:目标字符串<br/>
  pos:截取目标字符串起始位置<br/>
  endpose:截取目标字符串结束位置<br/>
  国旗:功能标志<br/>
  replaceStr:替换的字符串<br/>
  马克斯:最多替换几处(默认替换全部)</p>
  </引用>
  <p>有上图我们看出来,接下来我们要将的Python中重新模块,正则表达式对象,匹配对象三者之间是存在一定关系的。</p>
  <p> 1,再保险模块的编译方法返回一个正则表达式对象<br/>
  2,再保险模块和正则表达式对象的发现(),fullmatch(),匹配(),搜索()等方法返回一个匹配对象<br/>
  3,他们分别有自己的属性和方法<br/>
  </p>
  <p> <强> 2.1,编译</强> </p>
  
  <pre类=   regex=re.compile(模式、旗帜=0)#生成正则表达式对象以前      

<强> 2.2,findall

        re.findall(模式、字符串、pos、endpose) #从目标字符串中匹配所有符合条件的内容

详Python正解则表达式模块