我有以下单行字符串
10101010110001
我想捕获 1 之间的所有 0
我使用了以下正则表达式:
/(10+1)/
这给了我以下组:
- 101
- 101
- 10001
这不是我想要的,我想要所有组(即使 1 已经在前一组中捕获):
- 101
- 101
- 101
- 101
- 10001
最佳答案
你几乎就有这个想法了。您的解决方案的问题在于您已经消耗了您想要在下一场比赛中使用的 1。
要解决这个问题,请使用正向前瞻:
/1(0+)(?=1)/
第一个 1 将在匹配时被消耗,但是正向前瞻会阻止第二个“1”成为匹配的一部分,它只是断言“1”在那里
请参阅 Regex101 上的示例
关于java - 具有多个组的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60198995/