正则表达式 整理

单字符匹配:

    [] :匹配 []中包含的单个字符 
    \d :匹配数字字符    相当于[0-9]
    \D : 除了\d以外所有字符
    \s : 匹配所有的空白字符  例如:\t  \n 空格等
    \S :除了\s以外所有字符
    \w :匹配数字、字母、下划线、中文   相当于[0-9a-zA-Z_]
    \W :除了\w以外所有字符
    . : 匹配除换行符以外所有字符

数量修饰:

    {n} :匹配n次
    {n,} :匹配至少n次, 能多匹配就多匹配(默认贪婪)
    {n,m} : 匹配至少n次,最多m次
    {0,} :匹配任意多次     同*
    {1,} :匹配至少1次       同+
    {0,1} :可有可无   同?

贪婪模式/非贪婪模式:

   贪婪模式:尽可能多的匹配字符

   非贪婪模式:尽可能少的匹配字符

   常用:
      .*   :匹配除\n以外所有字符
      .*? :取消贪婪
      .+  : 匹配至少一个
      .+? : 取消贪婪

扫描二维码关注公众号,回复: 3689862 查看本文章

边界修饰:

    ^ : 以xxx开头
    $ : 以xxx结尾

分组  ():

  1.   视为一个整体
  2.   子模式   

        1)命名法:
            (?P<goudan>正则表达式)      使用  (?P=goudan)匹配分组
        2)直接使用数字:
            (正则表达式)                使用  \1 \2  或 $1 $2 匹配分组(分别代表第一个小括号匹配到的内容和第二个小括号匹配到的内容)

匹配模式:

  • re.I     忽略大小写
  • re.L    表示特殊字符集\w,\W,\b,\B,\s,\S
  • re.M   表示多行模式
  • re.S    包括换行符在内的任意字符
  • re.U   表示特殊字符集\w,\W,\b,\B,\d,\D,\s,\D

函数:

import re

re.compile('正则表达式')  # 匹配符合正则的内容  

# 匹配
re.match()       # 从字符串的开头开始匹配,如果匹配成功,返回一个对象,否则返回None
re.search()      # 从字符串的任意位置开始匹配,如果匹配成功,直接返回
re.findall()     # 匹配所有,返回一个列表, 列表里面就是匹配的内容
 
# 正则替换
re.sub()         # 参数1是要替换掉的字符,参数2是要替换成的字符,参数3是需要替换的字符集
re.subn()        # 参数同re.sub,返回结果在re.sub()基础上增加了返回替换的次数

# 获取数据  其中ret为返回对象
ret.group()      # 得到匹配结果(整个正则匹配的内容)
ret.span()       # 得到匹配结果的位置

# 获取分组数据
ret.group(1)     # 第一个子模式匹配到的内容
ret.group(2)     # 第二个子模式匹配到的内容
ret.findall()    # 如果想要整个正则匹配的内容,需要将整个正则用小括号括起来

猜你喜欢

转载自blog.csdn.net/qq_37212752/article/details/82844846