常用正则表达式

单字符匹配:

    [] :匹配 []中包含的单个字符 
    \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以外所有字符
      .*? :取消贪婪
      .+  : 匹配至少一个
      .+? : 取消贪婪

 

边界修饰:

    ^ : 以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
  • re.DOTALL    使(.)匹配包括换行符在内的任意字符

 

函数:

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()    # 如果想要整个正则匹配的内容,需要将整个正则用小括号括起来

 

示例:

  • 匹配url:((ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\/\\\+&amp;%\$#_]*)?)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值