Java 带有两个捕获组的正则表达式
我需要一些正则表达式的帮助: 我在regex101中有以下示例代码: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
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`