首页 > 代码库 > 正则表达式纪要

正则表达式纪要

1.正则表达其实就是一门小型语言。

2 方法

       1,findall方法是去吧一个字符串中所有符合规则的匹配出来,并且以一个列表的形式返回。(最常用的)

import re
a=jhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei
b=re.findall(erfei,a)
print b 

      2,

 

 

2 最常用的元字符

     1,   .      ^      $       *       +        ?         {}        []       ()       \    元字符本身也是普通字符,只不过他有特殊的功能。

     2,这些元字符,在[]里面不在具有特殊意义,有3个例外,第一个是  -  表示范围  ^ 尖角符在[]里面表示非的意思,还有  \

     3 , \   反斜杠   如果在元字符前加上反斜杠取消元字符的特殊意义,   \ 加上一些普通字符具有特殊意义如\d

           1,\d 匹配任何十进制数,相当于数字[0-9]

           2,\D 匹配任何非数字字符,相当于[^0-9]

           3, \s匹配任何空白字符,相当于类[\t\n\w\r\v]

           4, \s匹配任何非空白字符,相当于类[^\t\n\w\r\v]

           5, \w 匹配任何字母数字字符,相当于[0-9a-zA-Z]

           6, \W 匹配任何非字母数字字符,相当于[^0-9a-zA_Z]

           7,  \b 匹配一个单词边界,也就是单词和空格间的位置,匹配单词边界包括开始和结束位置,这里的单词是指连续的数字,字母和下划线组成的字符串

                 注意,\b 的定义是\W 和\w 的交界

import re
f=23213212412jjjk12312312221j31k2k12j31231234

c=re.findall([a-z],f)
print c

1,[ ]他通常来指定一个字符类别,所谓字符类别就是你想匹配一个字符集。
  字符可以单个列出也可以用‘-’隔开来给定一个字符范围[a-z]就是说匹配小写
  字母a到z之间的所有字母(包含啊a和z),如果想匹配大写字母就是[A-Z]
  数字就是[0-9]
   
import re
a=jhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei
b=re.findall(er.ei,a)
print b

  .  号这个点表示匹配除了换行符以外的所有字符(通配符)
import re
a=erfeijhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei
b=re.findall(^er.ei,a)
print b

  ^  尖角符表示开始位置,也就是说只有在开始位置存在符合规则的就可以匹配到,否则就匹配不到(只匹配开头位置的一个)
import re
a=erfeijhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei
b=re.findall(er.ei$,a)
print b
  
  $    这个符号表示匹配的终止位置,(只匹配终止位置)如果有就返回,
       没有就为空

 

#!coding=utf-8
import re
a=jhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei
b=re.findall(er.{,3}ei,a)
print b

#  *  +   ?   { }   都表示重复 *号表示0到多次就是说*号前面的字符出现0到无限次都能匹配,+号表示1到多次,就是说如果+号前字符出现0次就匹配不到了
 #  ?  号表示0到一次  ,{}  表示匹配范围{5}就是匹配5次如果是{1,5}表示匹配1到5次,就是说你想几次就几次(太好用了)

 

正则表达式纪要