正则表达式

正则表达式

用途

  需要在一段字符串中提取出来相应的信息时(比如数字,字符,符号等),可以根据信息的特点写成一个规则,利用这个规则去匹配字符串中的信息,并将其提取出来

含义

  字符串的匹配规则,本质上就是一个公式,利用公式去寻找信息

正则表达所用的语法,所用的方法

  re.match():从头开始匹配,只匹配到一个值就结束,如果第一个值与规则内的字符不匹配,便返回None

  re.search():匹配包含,全局匹配,匹配到一个便返回

  match和search方法都是返回obiect格式的,要拿取值需要用group()的方法,当匹配无值返回None时,group方法会报错

  re.findall():全局匹配,并将满足规则的所有元素放到列表中并返回

  re.split():re.split("pattern","替换符号",string),将分割的元素以列表的形式存储

正则常用的规则(字符串中有数字、字符、符号,有前后左右等特性,那就有相对应的规则去匹配这些内容和特性)

  “  .  ” :匹配任意字符,从头开始匹配,(\n符号除外)

  “  ^ ” :匹配字符串是否是以^后面的字符开头。并将此字符返回

  “  $  ”:匹配字符串是否是以$前面的字符结尾,并将此字符返回

  “  *  ” :匹配*前的字符0次或者多次,如果是ab*,则匹配a或ab,或者a后面跟着任意数量的b

  “  +  ” :匹配前一个字符1次或多次,如果是ab+,则匹配a后面跟着非零数量的b,不会单独匹配a

  “  ?  ” :匹配前一个字符1次或0次   如果是ab?,则会匹配a或者ab

  “ { m }”:匹配前一个字符m次

  “ {n,m}” :匹配前一个字符n到m次  #按m次来

  “  | ” : 或的关系

  “ \d ”:匹配数字 0~9

  “ \D ” : 匹配非数字的字符

  “ \w ”:匹配【A-Za-z0-9】

  “\W” :匹配非【A-Za-z0-9】

  “ \s ” :匹配空白字符

  “ (........)” : 分组匹配,如    a = re.search("(?P<name>\d{3})(?P<name>\w{5})")      可以用a.groupdict()的方法转换成字典格式

  “[    ]”:里面填内容,表示包含的意思

  “[ ^   ]”:里面加^符号表示不包含的意思

  注:要匹配特殊字符时,在字符前面加上 \ (反斜杠)

 

标识符:

re.I:忽略大小写

re.M :多行模式,会自动检测出   \n(换行符)

re.S  : 即为’ . ’并且包括换行符在内的任意字符(’ . ’不包括换行符)

re.X :为了增加可读性,忽略空格和’ # ’后面的注释

   

posted @ 2018-04-12 21:32  控己未  阅读(115)  评论(0编辑  收藏  举报