在Sublime Text中匹配多行正则表达式

时间:2018-08-03 09:40:27

标签: regex sublimetext3

我试图在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

2 个答案:

答案 0 :(得分:3)

您可以使用

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

请参见PCRE regex demo(SublimeText3使用PCRE regex引擎)。

详细信息

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

答案 1 :(得分:1)

尝试以下模式:([A-Z])\d\n\1\d\n\1\d

Demo