Python-30-正则表达式

正则表达式

  1. 处理对象:字符串,python中使用re模块

  2. 语法规则

     *   匹配0次或多次
     +   匹配1次或多次
     ?   匹配0次或1次
     \   转义字符,使字符改变原来的意思
     ^   匹配字符串开头
     $   匹配字符串结尾
     |   或,匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式
     {}  {m}匹配前一个字符m次,{m,n}匹配前一个字符m至n次,{m,}匹配m至无限次
     []  字符集,多选一,对应的位置可以是字符集中任意字符分组表达式作为一个整体,可以后接数量词。
         [a-z]从a到c   [0-9] 0-9的数字   [09-] 0、9、-三个字符  [0\-9] 0、9、-三个字符
     ()  被括起来的表达式将作为分组,从表达式左边开始没遇到一个分组的左括号“(”,编号+1。分组表达式作为一个整体,可以后接数量词。表达式中的|仅在该组中有效。
    
  3. 预定义字符集

     \d  数字[0-9]
     \D  非数字[^\d]
     \s  匹配任何空白字符[<空格>\t\r\n\f\v]
     \S  非空白字符[^\s]
     \w  匹配包括下划线在内的任何字字符[A-Z a-z 0-9 _]
     \W  匹配非字母字符,即匹配特殊字符
     \A  仅匹配字符串开头,同 ^
     \Z  仅匹配字符串结尾,同 $
     \b  匹配\w和\W之间,即匹配单词边界匹配一个单词边界,也就是指单词和空格间的位置
     \B  [^\b]
     . 匹配除换行符 \n 外的字符
    
  4. 特殊分组用法

     (?P<name>str)  分组,除了原有的编号外再指定一个额外的别名  (?P<id>abc){2}  abcabc
     (?P=name)      引用别名为<name>的分组匹配到字符串     (?P<id>\d)abc(?P=id) 1abc1  5abc5
     \<number>      引用编号为<number>的分组匹配到字符串   (\d)abc\1   1abc1 5abc5
    
  5. 例子

    • 字符 \d 的理解

         import re
         regex = re.compile(r'\d+')
         s = 'abc123adawae12edqwe657'
         res = re.findall(regex, s)
         print(res)  # ['123', '12', '657']
      
    • 字符 \b 的理解

        import re
        regex1 = r'\btina'
        res1 = re.findall(regex1, 'tiantinaaaa')
        print(res1)  # []
        regex2 = r'\btina'
        res2 = re.findall(regex2 ,'tian tinaaaa')
        print(res2)  # ['tina']
        regex3 = r'\btina'
        res3 = re.findall(regex3, 'tian#tinaaaa')
        print(res3)  # ['tina']
        regex4 = r'\btina\b'
        res4 = re.findall(regex4, 'tian#tina@
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值