正则表达式

 

  • 基本使用
    • import re # 导入re模块
    • result = re.match(正则表达式,要匹配的字符串) # 使用match方法进行匹配操作
    • result.group() # 如果上一步匹配到数据的话,可以使用group方法来提取数据
    • 示例:
      • import re
      • result = re.match("itcast","itcast.cn",re.A)
      • result.group()
  • 匹配单个字符
    • . 匹配任意一个字符(除了\n)
    • [] 匹配[]中列举的字符
    • \d 匹配数字,即0-9
    • \D匹配非数字,即不是数字
    • \s 匹配空白,即空格,tab键
    • \S 匹配非空白
    • \w 匹配单词字符,即a-z,A-Z,0-9,_(包含中文字符)
    • \W 匹配非单词字符
  • 匹配多个字符
    • \d{m,n} 匹配m到n位的数字,m必须小于n
    • \d{11} 11个连续的数字
    • ? 前面的一个字符 可有可无
    • * 前面的随意多个字符 可有可无
    • .* +re.S 随意匹配
    • + 任意多个字符 至少有一个
    • .+
    • \d{5,} 至少五位,至多不限
  • 特殊字符
    • ^ #匹配开头
    • [^a] #表示只要不是a
    • $ #匹配结尾
    • re.I #忽略大小写
    • re.A #ascii码
    • re.S #匹配换行
    • re.X #忽略空格和#后面的注释
    • re.M #多行模式
    • re.U #Unicode字符集
    • re.DOTALL #使得.也能匹配\n换行符
  • 匹配分组
    • | 匹配左右任意一个表达式
    • (ab) 将括号中字符作为一个分组 \1取第一个分组的值
    • \num 引用分组num 匹配到的字符串
    • (?P<name>) 分组起别名
    • (?P=name) 引用别名为name 分组匹配到的字符串
    •  
  • 高级用法
    • match
    • search 查找只要匹配到符合要求的
      • 示例
        • import re
        • ret = re.search(r"\d+","阅读次数为9999")
        • ret.group()
    • findall 查找所有匹配到符合要求的
      • 示例
        返回一个列表
        • import re
        • ret = re.findall(r"\d+","python = 9999,c = 7890,c++ = 12345")
        • print(ret)
    • finditer 查找所有匹配到符合要求的 返回一个迭代器
    • sub 替换查找到的某个字符
      • 示例
      • inport re
      • re.sub(r"\d+","998","python=997",c++="1024")
      • "python=998","c++=998"
    • subn 替换查找到的某些字符串 并返回一个元祖(修改后的字符串,修改的数量)
    • split 切割字符串
      • 示例
        • import re
        • i = re.split(r":| ","hello:word python")
        • print(i)
    • compile 返回一个正则对象
      • p = re.compile("\d",re.S)
      • p.findall("chuan1zhi2")
  • 贪婪与非贪婪
    默认贪婪​
    • 在 * ? + {m,n} 后面加上? 使贪婪变成非贪婪
  • m.span(0) #返回匹配成功的整个子串的索引 (0.11)
  • m.group(0) 返回成功的整个子串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值