• 全网最易懂的正则表达式教程(6)- 分组


    正则详细教程系列可以看此链接的文章哦

    https://www.cnblogs.com/poloyy/category/1796055.html

    分组和编号

    • ( ) 在正则中可以用于分组
    • 被括号起来的部分是子表达式,当做一个分组
    • 场景类比:小学算术,括号表示单独计算里面的内容 (1+1)*2

    分组和编号的规则

    第几个括号就是第几个分组

    举栗子

     (d{4}-d{2}-d{2})(d{2}:d{2}:d{2}) 

    这个表达式由两个子表达式组成,第一个分组是日期,第二个分组是时间

    不保存分组

    • 默认在 ( ) 里面的表达式会保存成分组,但有些情况下,只想用括号将某些部分看成一个整体,临时使用,后续不再用
    • 可以通过 ?: 不保存分组, (?:正则表达式) 

    不保存分组的好处

    • 正则表达式中出现了括号,那么这个子表达式在后续可能会再次被引用
    • 不保存分组可以提高正则的性能
    • 分组变少了,在分组计数时也更不容易出错。

    不保存分组的理解

    那到底啥是不保存分组呢?可以理解成,括号只用于归组,把某些表达式当做一个单独的整体,不分配编号,后面不会再进行这部分的引用

    保存分组的栗子

     

    678 是分组一 

    不保存分组的栗子

    678 并不是分组,无法引用

    括号嵌套

    括号嵌套 (( )) 这种情况肯定会出现,就好像小学算术 ((1+1)+(1+1)) 一样

    直接看栗子,然后就知道括号嵌套情况下,分组编号的规则是什么了

    看右边的 Group 1 - 8

    分组编号

    分组引用

    知道分组编号后,我们会需要引用分组

    引用规则

    反斜扛 + 编号:  umber 

    不同编程语言,有不同的引用方式

    有印象即可,用到再来查一查~

    分组引用在查找中使用

    找到重复的单词

    分组引用在替换中使用

    可以通过分组引用替换文本内容

    扩展

    在 Python 中,sub 函数可用于正则的替换

  • 相关阅读:
    nginx: [emerg] the size 10485760 of shared memory zone "cache_one" conflicts with already declared size 0
    ruby 删除文件夹(包括文件夹中的文件夹和文件)
    nisi 脚本示例
    将node-expat扩展编译至node.exe中
    将odbc扩展编译至nodejs程序集中
    微信小程序数据传递基本
    Java环境配置
    Angular环境配置
    mysql中常用的数据类型
    html中a标签的4个伪类样式
  • 原文地址:https://www.cnblogs.com/poloyy/p/13221689.html
Copyright © 2020-2023  润新知