首页 > 解决方案 > Regex 根据 Regex 将字符串拆分为 N 个匹配项

问题描述

我需要根据另一个正则表达式将一个字符串拆分为 N 个匹配项:

输入文本:

Start Point 123
some random text
some random text
some random text

Start Point 234
some other random text

Start Point 345
some more random text

我要拆分的正则表达式是:

(Start Point \d+)

当我在正则表达式中运行它时,我想要以下 3 个匹配项:

第一场比赛

Start Point 123
some random text
some random text
some random text

第 2 场比赛

Start Point 234
some other random text

第 3 场比赛

Start Point 345
some more random text

谢谢你的帮助。

标签: regex

解决方案


您可以使用此正则表达式进行匹配:

/^Start Point \d+(?:\n.+)*(?=\n\n|\z)/gm

在多行模式下。

正则表达式演示

正则表达式详细信息:

  • ^Start Point \d+: 匹配Start Point后跟一个空格和 1+ 行开头的数字。
  • \n: 匹配换行符
  • .+: 匹配到行尾
  • (?:\n.+)*: 匹配 0 个或多个分组表达式
  • (?=\n\n|\z): 提前断言我们有 2 个换行符或前面的输入结束

推荐阅读