绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
3月302016

au3 正则参考 -80-表达式的递归匹配

作者:绿色风   发布:2016-3-30 11:27 Wednesday   分类:工具●教程   阅读:13756次   评论:0条  

<!DOCTYPE html> RegExp

表达式的递归匹配: (?R) 或 (?x)

相对于反向引用来说, 反向引用是在匹配过程中对匹配到的字符串内容进行引用, 而递归匹配是对表达式进行引用. 有时我们需要用正则表达式来分析一个计算式中的括号配对情况. 比如使用表达式 ( [^)] ) 或者 ( .? ) 可以匹配一对小括号. 但是如果括号内还嵌有一层括号的话 , 如 ( ( ) ) , 则这种写法将不能正确匹配, 得到的结果是 ( ( ) . 类似情况的还有 HTML 中支持嵌套的标签如 等.

表达式使用 (?R) 或 (?x)(x=组编号) 递归进入整个正则表达式. 具体格式如下表:

格式 说明 格式 说明
(?R) 对整个表达式的递归引用 (?R1) 或 (?R2) 对指定分组的递归引用.
(?1) 或 (?2) 对指定分组的递归引用. (?R) 或 (?R'named') 对指定命名分组的递归引用

 

下面示例匹配嵌套未知层次的 "小括号对" :

字符串: If StringInStr(FileGetAttrib($current & "\" & $file), "D") And ($file <> "." Or $file <> "..")

表达式: (([^()]|(?R)))

匹配结果(标志 4):
[0]=> [0](FileGetAttrib($current & "\" & $file), "D")
[0]=> [1]"
[1]=> [0]($file <> "." Or $file <> "..")
[1]=> [1]"

表达式分析:

模式 子模式 说明
(   转义字符 ( 为本身原意字符 , 匹配一个左园括号 .
([^()]|(?R))   两个选项的可选表达式 , 分述如下 :
  [^()] 选项 1 , 负字符组 . 匹配一个排除左 , 右园括号的其它任意字符
  | 选项分隔符 .
  (?R) 选项 2 , 递归进入整个正则表达式 .
  0 次或多次匹配选项表达式的结果匹配项 .
)   转义字符 ) 为本身原意字符 , 匹配一个右园括号 .

 

几个正在表达式递归示例模式:

表达式 等效的表达式1 等效的表达式2 可以匹配
(\w)(?1) (\w)(\w)   ab
(?1)(\w(?2))(\d) (?1)(\w(\d))(\d) (\w(\d))(\w(\d))(\d) a1b23
(\w(?1)?) (\w(\w(?1)?)?) (\w+) ghjk5……
(([^()]|(?R))) (([^()]|(([^()]|(?R)))))   (a(c+2))

 






本文固定链接: http://jianyiit.com/post-225.html

blogger
该日志由 绿色风 于2016-3-30 11:27 Wednesday发表在 工具●教程 分类下。
版权所有:《绿色风's Blog》 → 《au3 正则参考 -80-表达式的递归匹配》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::朋友!!请不要透支你的朋友圈!!!
下一篇:au3 正则参考 -72-非回溯子表达式

热门文章

相关文章

  • au3 正则参考 -33-问号限定符
  • au3 正则参考 -55-普通组与命名组混合编号规则
  • au3 正则参考 -71-回溯控制
  • au3 正则参考 -09-单词字符
  • 新编winapi大全
取消回复

发表评论

亲,头像对么?

58 + 36 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20277 天
    • 日志总数: 365 篇
    • 评论数量: 7916 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap