python-正则表达式re

匹配集合与补集

  • 字符组表达式 […] 匹配括号中列出的任一个字符
    • [abc] 可以匹配字符 a 或 b 或 c
    • 区间形式 [0-9] 是顺序列出的缩写,匹配所有十进制数字
    • 字符 [0-9a-zA-Z]匹配所有字母(英文字母)和数字
  • [^…] 中的 ^ 表示求补,这种模式匹配所有未在括号里列出的字符
    • [^0-9] 匹配所有非十进制数字的字符
    • [^ \t\v\n\f\r] 匹配所有非空白字符(非空格/制表符/换行符)
    • 如果需要在字符组里包括 ^,就不能放在第一个位置,以免混淆含义。可以写^恢复其本来含义;如 果需要在字符组包括 - ],也必须写 -或 ]

常规字符匹配

r1 = re.compile('abc’)
常用字符组

  • 为了方便,re 用换意串形式定义了几个常用字符组,包括:
    \d:与十进制数字匹配,等价于 [0-9]
    \D:与非十进制数字的所有字符匹配,等价于 [^0-9]
    \s:与所有空白字符匹配,等价于 [ \t\v\n\f\r]
    \S:与所有非空白字符匹配,等价于 [^ \t\v\n\f\r]
    \w:与所有字母数字字符匹配,等价于 [0-9a-zA-Z]
    \W:与所有非字母数字字符匹配,等价于 [^0-9a-zA-Z]
  • 圆点字符 . 可以匹配任意一个字符
    a…b 匹配所有以 a 开头 b 结束的四字符串
    重复
  • 常希望写重复匹配的模式(部分),任意次或若干次重复:
  • 基本重复运算符是 ,α 与 α 的 0 次或任意多次出现匹配:例如[1-9][0-9]或者[1-9]\d代表任意大的正整数
  • 与 * 略微不同的重复运算符 + 表示 1 次或多次重复:例:允许以0开头时,描述正整数的一种简单写法’\d+’; ‘α +’,等价于 'αα* ’

常希望写重复匹配的模式(部分),任意次或若干次重复:

  • 用 ? 运算符表示 ? 表示 0 次或 1 次重复 例,描述整数(表示整数的字符串)的一种简单模式 ‘-?\d+’,其前面的’-?'部分表示可以以负号开头。
  • 确定次数的重复用 {n} 表示,α{n} 与 α 匹配的串的 n 次重复匹配:
    描述北京常规的固话号码:’(010-)?[2-9][0-9]{7}'表示可选010前缀,2-9开头,后面的任意数字加起来一共可以有七位。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

使用正则表达式抽取数据

网页源代码
在这里插入图片描述

  • 名称嵌在

    之中
  • 写出对应的正则表达式

    (.+?)

  • 字符 . 负责匹配除了换行字符意外的任何字符
  • 字符 +? 负责字符匹配的范围
  • () 区别于字符集合 [] ,代表捕获组 (.+?)
  • 表示匹配标签之间的所有内容
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值