【问题标题】:Matching multiline regex in Sublime Text在 Sublime Text 中匹配多行正则表达式
【发布时间】:2018-08-03 09:40:27
【问题描述】:

我试图在 Sublime Text 中编写正则表达式,在其中找到三个匹配项

A1
A2
A3
B1
B2
B3
C1
C2
C3

1 场比赛

A1
A2
A3

2 匹配

B1
B2
B3

3 场比赛

C1
C2
C3

当然可以用例子来处理

((?:A\d\n)+|(?:B\d\n)+|(?:C\d\n)+)

除了枚举之外,还有更聪明的方法吗?

Interactive demo

【问题讨论】:

    标签: regex sublimetext3


    【解决方案1】:

    你可以使用

    ^([A-Z])\d+(?:\R\1\d+)*
    

    参见PCRE regex demo(SublimeText3 使用 PCRE 正则表达式引擎)。

    详情

    • ^ - 行首
    • ([A-Z]) - 第 1 组:任何 ASCII 大写字母(请注意,如果 区分大小写 选项关闭,这也将匹配小写字母)
    • \d+ - 1 位以上
    • (?:\R\1\d+)* - 零次或多次重复:
      • \R - 换行符
      • \1 - 与第 1 组中的相同字母
      • \d+ - 1 位以上

    【讨论】:

      【解决方案2】:

      试试这个模式:([A-Z])\d\n\1\d\n\1\d

      Demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 2017-07-26
        相关资源
        最近更新 更多