java - 具有多个组的正则表达式

标签 java regex

我有以下单行字符串

10101010110001

我想捕获 1 之间的所有 0

我使用了以下正则表达式:

/(10+1)/

这给了我以下组:

  1. 101
  2. 101
  3. 10001

这不是我想要的,我想要所有组(即使 1 已经在前一组中捕获):

  1. 101
  2. 101
  3. 101
  4. 101
  5. 10001

最佳答案

你几乎就有这个想法了。您的解决方案的问题在于您已经消耗了您想要在下一场比赛中使用的 1。

要解决这个问题,请使用正向前瞻:

/1(0+)(?=1)/

第一个 1 将在匹配时被消耗,但是正向前瞻会阻止第二个“1”成为匹配的一部分,它只是断言“1”在那里

请参阅 Regex101 上的示例

关于java - 具有多个组的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60198995/

相关文章:

java - spring - 如何将通用(参数,值)耦合从我的登录 Controller 传递到我的身份验证提供程序?

javascript - 正则表达式删除文件路径

java - Ant 构建 junitreporting 时出现错误

java - 使用多线程代码防止DOS攻击

python - 如何将具有不规则列的html代码转换为嵌套的json文件?

javascript - 正则表达式从域字符串中获取 SLD + TLD

java - 从Java中的行中提取德国邮政编码

javascript - 正则表达式匹配字符和字母

java - fix34codingbat java——为什么这不起作用?

java - 使用 Java 在 akka 测试套件中测试流