正则表达式(四)匹配模式

1. 匹配模式

所谓匹配模式,指的是正则中一些改变元字符匹配行为的方式,比如匹配时不区分英文字母大小写。常见的匹配模式有 4 种,分别是不区分大小写模式、点号通配模式、多行模式和注释模式

1.1 不区分大小写模式

  • 不区分大小写模式的指定方式,使用模式修饰符 (?i);
  • 修饰符如果在括号内,作用范围是这个括号内的正则,而不是整个正则;
  • 使用编程语言时可以使用预定义好的常量来指定匹配模式。

1.2 点号通配模式

  • 使用模式修饰符 (?s);
  • 一般情况下,**.**匹配除了换行以外的任意字符,启用点号通配模式即可使.真正匹配任意一个字符
  • 注意:很多地方将点号通配模式成为单行匹配模式。

1.3 多行匹配模式

  • 使用模式修饰符 (?m)
  • 通常情况下,^匹配整个字符串的开头,$ 匹配整个字符串的结尾。多行匹配模式改变的就是 ^ 和 $ 的匹配行为,使 ^ 和 $ 能匹配上每行的开头或结尾。

1.4 注释模式

  • 使用 (?#) 来表示,加入注释从而让正则更容易阅读和维护
    例如:(\w+)(?#word) \1(?#word repeat again)
  • 很多编程语言中也提供了 x 模式来书写正则,也可以起到注释的作用,注意在 x 模式下,所有的换行和空格都会被忽略。
    # python代码
    import re
    
    regex = r'''(?mx)  # 使用多行模式和x模式
    ^          # 开头
    (\d{4})    # 年
    (\d{2})    # 月
    $          # 结尾
    '''
    
    re.findall(regex, '202006\n202007')
    # 输出结果 [('2020', '06'), ('2020', '07')]
    

    总结

  • 不区分大小写模式,它可以让整个正则或正则中某一部分进行不区分大小写的匹配。
  • 点号通配模式也叫单行匹配,改变的是点号的匹配行为,让其可以匹配任何字符,包括换行。
  • 多行匹配说的是 ^ 和 $ 的匹配行为,让其可以匹配上每行的开头或结尾。
  • 注释模式则可以在正则中添加注释,让正则变得更容易阅读和维护。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值