regex - 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
谢谢你的帮助。
解决方案
您可以使用此正则表达式进行匹配:
/^Start Point \d+(?:\n.+)*(?=\n\n|\z)/gm
在多行模式下。
正则表达式详细信息:
^Start Point \d+
: 匹配Start Point
后跟一个空格和 1+ 行开头的数字。\n
: 匹配换行符.+
: 匹配到行尾(?:\n.+)*
: 匹配 0 个或多个分组表达式(?=\n\n|\z)
: 提前断言我们有 2 个换行符或前面的输入结束
推荐阅读
- c# - c# - People API 不返回电子邮件地址
- java - 未找到适用于 ucanaccess 的驱动程序
- tfs - 使用本地 TFS 发布管理器实施 Azure DevOps 服务
- android - 将 VSTO Outlook 加载项移植到移动设备
- java - 如何获取异步回调“onResponse”的参数?
- windows - 将 OU 的所有用户添加到安全组以及安全组中的用户
- php - 谷歌日历如何解决“您需要拥有此日历的作者访问权限”?
- c# - 正则表达式发生不正确的字符串比较
- c# - BarcodeDetector 仅应在单击按钮时进行扫描
- excel - 数据透视表过滤器按钮