具有许多重复空格的正则表达式捕获组

Regex capturing group with many repeating white spaces

我在捕获此类群组时遇到问题,其中:

a1:b1 a2:b2 b3 b4 a3:b5

预期结果是

a1:b1
a2:b2 b3 b4
a3:b5

我能得到的最好的表达是/[\w]*:([\w]*)/g,这就是我得到的:

a1:b1
a2:b2
a3:b5

您可以使用

\w+:.*?(?=\s*\w+:|$)

参见regex demo

详情:

  • \w+ - 一个或多个单词字符
  • : - 冒号
  • .*? - 除换行字符外的任何零个或多个字符,尽可能少
  • (?=\s*\w+:|$) - 正向前瞻,需要紧靠当前位置右侧的零个或多个空格、一个或多个单词字符和一个冒号或字符串结尾。