• [Regular] 2、正则表达式基础元字符及分组、捕获


          分组、捕获、分组不捕获
          普通的无特殊意义的括号通常有两种功能:分组和捕获。
          捕获型括号的编号是按照括号出现的次序,从左到右计算的。如果提供反向引用,可以在表达式的后面用\1,\2来引用匹配的文本。如:(a)(b)可以用\1引用(a),\2引用(b).


    仅用于分组的括号(?:…)
    仅用于分组的括号(?:…) 不能用来提取文本,只能用来规定多选结构或者量词的作用对象。如 (1|one)(?:and|or)(2|two) 匹配之后,\1包含“1”或者“one”,\2q包含“2”或者“two”。只用于分组的括号也叫非捕获型括号.


    命名捕获 (?<Name>)
    .Net引擎能够能捕获内容命名。如果在正则表达式内部引用捕获的文,.Net中使用\k<Name>. 如 (?<Name>a)[a-z]+\k<Name> 来匹配abeena.

    固化分组 (?>…)
    如 果了解了正则引擎的匹配原理,就很容易理解固化分组。固化分组一旦括号内的子表达式匹配之后,匹配的内容就固定下来,在接下来的匹配过程中不会变化,除非 整个固化分组的括号都被弃用,在外部回溯中重新应用。固化分组能够提高匹配效率,而且自己能对什么能匹配,什么不能匹配进行准确地控制。 


    匹配优先量词 *  +  ?  {min, max}
     匹配优先量词在优先匹配尽量多的字符。


    忽略优先量词 *?  +?  ??  {min, max}?
    忽略优先量词与匹配优先量词正好相反,匹配尽可能少的内容。


    占有优先量词 *+  ++  ?+  {min, max}+
    占有优先量词类似普通的匹配优先量词,不过他们一旦匹配某些内容,就不会“交还”。类似固化分组。

    常用元字符

    在字符组的内部,元字符的定义规则是不一样的。例号.点号在外部表示任意一下字符,但在字符组内只是表示一个.点号。


  • 相关阅读:
    精益敏捷企业的七大核心能力和实施路线图-Scrum中文网
    leangoo思维导图实用过程
    Scrum看板+思维导图联动,高效创新
    Leangoo敏捷开发工具- 6.0.2 版发布
    多项目协同管理软件
    项目管理软件~leangoo
    用Leangoo看板工具做采购流程管理
    Android的简单应用(四)——字符串处理
    Android的简单应用(三)——为你的程序添加监听器
    使用WindowManager添加View——悬浮窗口的基本原理
  • 原文地址:https://www.cnblogs.com/abeen/p/1493888.html
Copyright © 2020-2023  润新知