Python正则表达式学习

正则表达式

简介

  • 描述与检测字符串的工具
  • 一个正则表达式也是一个字符串
  • 检测字符串是否符合某种规则。
    • 如匹配“111”是否满足“仅含有数字”这个规则。这个例子显然是满足的。

描述规则

(符合规则成为匹配)

  1. 精确匹配:(re的字符数=目标字符数)

    • 相等匹配:“000”匹配‘000’
    • 转义字符:\s表示空隔,‘\_’表示下划线
    • 字符匹配:
      • 数字:‘\d’匹配任意数字。 ‘\d\d\d’匹配‘100’
      • 字符:‘\w’匹配任意字母或数字。‘\w\w\w’匹配‘py3’
        • 注意:\w只可以匹配字母或数字。 无法匹配.!@#$等
      • ‘.’:点 '.'表示任意字符
    • [] 匹配:[ ]表述一个字符,该字符的描述方法如下:
      • [0-9a-zA-Z\_] 可以匹配一个数字、字母或者下划线
      • 注意:[]中多个类型是或的关系
    • ()匹配:圆括号()是组:
      • (abc|bcd|cde),表示这一段是abc、bcd、cde三者之一均可,顺序也必须一致
  2. 范围匹配:(re字符数≠目标字符数)

    在一个字符后

    • *表示任意个字符(包括0个:
      • ‘\d*’ 匹配 任意个数字
    • +表示至少一个字符:
      • ‘\d+’ 匹配 至少1个数字
    • ?表示0个或1个字符:
      • '\w’匹配 1个或者0个\w
    • {n}表示n个字符:
      • ‘1{10}’ 匹配 ‘1111111111’
    • {n,m}表示n-m个字符:
  3. 行操作:

    1. ^表示行的开头:如^\d表示必须以数字开头。
    2. $表示行的结束:如\d$表示必须以数字结束。

使用re

>>> import re
>>> re.match(r'^\d{3}\-\d{3,8}$', '010-12345')
<_sre.SRE_Match object; span=(0, 9), match='010-12345'>
>>> re.match(r'^\d{3}\-\d{3,8}$', '010 12345')
  • 判断match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None。常见的判断方法就是:

    re.match(‘规则’,‘待匹配字符串’)

  • 分组

    >>> re.split(r'[\s\,]+', 'a,b, c  d')
    ['a', 'b', 'c', 'd']
    

    规则是:re.split(‘分开的节点’,‘目标字符串’)

    返回是一个list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值