我试图在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)+)
除了枚举之外,还有其他更聪明的方法吗?
答案 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
。