gpt4 book ai didi

regex - 如何捕获所有内容直到另一个捕获组

转载 作者:行者123 更新时间:2023-12-02 08:01:43 25 4
gpt4 key购买 nike

我有以下模板:

1251 Left Random Text I want to fill  
It can go through multiple lines
As you can see
9841 Right Again we see a lot of random text with 3115 numbers
And this also goes
To multiple lines
0121 Right
5151 Right This one is just one line
I was wrong
9731 Left This one is just a line
5123 NA Instruction 5151 was wrong
4113 Right Instr 9841 was correct
We checked

我想要 3 个组:

1251  

Left

Random Text I want to fill
It can go through multiple lines
As you can see

我在用

(\d+)\s(\w+)\s(.*)  

但它只停在当前行(所以我只得到第 3 组中的 Random Text I want to fill,尽管我想包括 As you can see)< br/>如果我使用单行标志,我每组只有 1 个匹配项,第 3 组几乎全部匹配

现场直播:https://regex101.com/r/W3x0mH/4

最佳答案

您可以使用匹配所有行的重复组,同时断言下一行不是以 1+ 位数字开头,后跟左或右:

(\d+)\s(\w+)\s(.*(?:\r?\n(?!\d).*)*)

解释

  • (\d+)\s(\w+)\s匹配前2组
  • (第三个捕获组
    • .* 匹配除换行符之外的任何字符 0 次以上
    • (?: 非捕获组\r?\n(?!\d).* 匹配换行符,断言右边不是数字
    • )* 关闭非捕获组并重复0+次
  • ) 关闭捕获组

Regex demo

关于regex - 如何捕获所有内容直到另一个捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56422136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com