Java 带有两个捕获组的正则表达式

Java 带有两个捕获组的正则表达式,java,regex,Java,Regex,我需要一些正则表达式的帮助: 我在regex101中有以下示例代码: dsgssgdfgdsfg A1 任何与“和”有关的内容,以及 新线和快 地下一层 再加上一切 dsgssgdfgdsfg A2 任何与“和”有关的内容,以及 新线和快 再加上一切 dsgssgdfgdsfg A3 任何与“和”有关的内容,以及 新线和快 地下三层 再加上一切 因此,我想要3个结果和2个捕获组(这里是CG),它应该是 结果1:1CG:A1 2CG:B1 结果2:1CG:A2 2CG:null或仅为空 结果3

我需要一些正则表达式的帮助:

我在regex101中有以下示例代码:

dsgssgdfgdsfg A1
任何与“和”有关的内容,以及
新线和快
地下一层
再加上一切
dsgssgdfgdsfg A2
任何与“和”有关的内容,以及
新线和快
再加上一切
dsgssgdfgdsfg A3
任何与“和”有关的内容,以及
新线和快
地下三层
再加上一切
因此,我想要3个结果和2个捕获组(这里是CG),它应该是

结果1:1CG:A1 2CG:B1

结果2:1CG:A2 2CG:null或仅为空

结果3:1CG:A3 2CG:B3


如何解决此问题,以及在不存在某些内容时如何获取null/empty?

您可以使用此正则表达式:

<result1>(.*?)<result1>(?:(?:.(?!<result1>))*?<result>(.*?)<result>)?

在这里添加代码,而不仅仅是在外部链接中。我添加了示例“代码”
<result1>(.*?)<result1>(?:(?:.(?!<result1>))*?<result>(.*?)<result>)?
MATCH 1
1.  `A1`
2.  `B1`

MATCH 2
1.  `A2`

MATCH 3
1.  `A3`
2.  `B3`