re模块

Posted gjx1212

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re模块相关的知识,希望对你有一定的参考价值。

一.简介

     用于string的模糊匹配,而string内置的方法是精确匹配。

二.字符匹配

1  普通字符

       用于精确匹配

2   元字符

     .   ^   $   *   +   ?  { }  |  ( )  

   .   通配符除 其余均可匹配

    ^  位置匹配,表示开始   $ 表示结束

import  re
ret=re.findall("^af","afghaf")
print(ret)
ret=re.findall("af$","afdfggaf")
print(ret)

  *,+,?,{}均表示重复次数

  *   0~+oo

+   1~+oo

?   1或0

{n,m} 表示n~m次   {1,}表示1到正无穷

    [ ]一次只能匹配一个,可以表示一个匹配集,又有取消元字符的功能

    [ ]中的特殊字符:  ^取反  -表示范围

import re
ret = re. findall(  "[^4,5]" ,  "dgg4ffd5dd" )
print(ret)
ret = re. findall("[^a-z,4,5]" ,"sccf5673374"  )
print(ret)

    :后面跟元字符,去除其特殊化,后面跟普通字符,增加特殊功能。

   d   D 表示数字  [0-9]   s  S表示空白字符[ fv]

   w W表示[a-zA-Z0-9]   匹配一个特殊字符的边界,而不是匹配特殊字符(这里的特殊字符是非字母和数字的)

 

import re
ret = re.findall(r "I","hello I am a LI$T")
 print(ret)
ret = re.findall("a\\","asgvff")#匹配反斜杠
print(ret)

  四个反斜杠,Python解释一个需要2个,re模块对这2个进行转义要4个。

 

( ):表示分组

import re
ret = re.search("(?p<id>d{11}),(?p<name>[a-z]*)     ","1445676556777567785ffhtfcg6")



ret1=ret.group("id")
ret2 = ret.group("name")
print(ret1,ret2)

|:表示或者用于分组

 

以上是关于re模块的主要内容,如果未能解决你的问题,请参考以下文章

python 正则表达式 re模块基础

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

Python基础之re模块

如何有条件地将 C 代码片段编译到我的 Perl 模块?

python re模块findall()详解

Node.js JavaScript 片段中的跳过代码