行号为常量和某行内容的值的匹配行(可变多行文本中)
Matching line where the line number is the sum of constants and the value of a certain line content (in a variable multiline text)
我在下面有这个文件,它是 3 个食谱。每个配方包含固定数量的 header 行和可变数量的成分行(组合)。
header 的最后一行给出了组合物中成分的数量。此行是 always header 的第 16 行(在链接的屏幕截图中,这些是第 16、38、58 行)。
然后是 header 第 16 行定义的行数组合。
然后每个食谱的最后一行总是0,
我需要把食谱分开,所以我需要找到最后几行,在例子中是第22、42、68行。
每个配方的行数是:
16行header+配料个数(整数[=34=第16行定义)+1行(最后的0,
)
screenshot of the text
我只走到这一步:
(?:.*?^0\,){1}
https://regex101.com/r/js3leQ/1
但这只能找到所有带有 0,
的行。
实际上找到 once 第三个 0,
行匹配会很好。
那已经给了我我需要的解决方案(因为第三个 0,
总是食谱的最后一行)。
要识别结束行(第 3 个零),如果您只能使用正则表达式 g 标志(没有 m),以下方法可能有效
0,(?=\n"REC|$)
https://regex101.com/r/ufXYFU/1
Update. 根据 "1",
总是在 0,
之前的评论,下面的代码应该可以工作(即使 m 标志是目前):
(?<="1",\n)0,
我在下面有这个文件,它是 3 个食谱。每个配方包含固定数量的 header 行和可变数量的成分行(组合)。
header 的最后一行给出了组合物中成分的数量。此行是 always header 的第 16 行(在链接的屏幕截图中,这些是第 16、38、58 行)。
然后是 header 第 16 行定义的行数组合。
然后每个食谱的最后一行总是0,
我需要把食谱分开,所以我需要找到最后几行,在例子中是第22、42、68行。
每个配方的行数是:
16行header+配料个数(整数[=34=第16行定义)+1行(最后的0,
)
screenshot of the text
我只走到这一步:
(?:.*?^0\,){1}
https://regex101.com/r/js3leQ/1
但这只能找到所有带有 0,
的行。
实际上找到 once 第三个 0,
行匹配会很好。
那已经给了我我需要的解决方案(因为第三个 0,
总是食谱的最后一行)。
要识别结束行(第 3 个零),如果您只能使用正则表达式 g 标志(没有 m),以下方法可能有效
0,(?=\n"REC|$)
https://regex101.com/r/ufXYFU/1
Update. 根据 "1",
总是在 0,
之前的评论,下面的代码应该可以工作(即使 m 标志是目前):
(?<="1",\n)0,