如何在Sublime语法中捕获重复组

时间:2018-10-04 14:17:27

标签: regex

我搜索过很多,但一直没有找到解决方案。

我需要用子行语法分析一条语句。那样的话就是这样

总和(#,#[,#] *)

换句话说,关键字Sum必须后跟(然后是一对数字,中间用逗号分隔,零个或多个数字前加逗号并最后以)结束。

我正在使用regex101来测试python regex(我读过的Sublime regex所基于的内容)。

https://regex101.com/r/TzKxIp/2

1 个答案:

答案 0 :(得分:0)

要查找捕获组中的所有数字,可以使用alternation\GRegex demo进行迭代匹配。

(?:\bSum\((?=\d+(?:,\d+)*\))|\G(?!\A))\K(\d+),?

this question

说明

  • (?:非捕获组
    • \bSum\(一个单词边界,后跟Sum(
    • (?=积极肯定地断言以下内容
      • \d+(?:,\d+)*\)匹配一个数字,然后重复零个或多个逗号,再匹配一个数字,后跟)
    • )积极回望
    • |\G(?!\A)或在上一场比赛结束时声明位置
  • )关闭非捕获组
  • \K忘记匹配的内容
  • (\d+),?将数字与可选的逗号匹配