正则表达式:跳过可变行数后获得下一个出现

时间:2019-07-18 10:21:28

标签: regex

我有一个无法正确提取的正则表达式。我想提取第一个表达式,然后跳过可变数量的行,直到下一个表达式。 现在,我正在执行以下操作,但是它不会提取NEXT表达式,而是提取LAST。

测试字符串:

you
sell
sell
buy
net premium
no. of units
500
500
2000
maturity
strike
230
230
215

现在使用常规快递:

(buy|sell)
(buy|sell)
(buy|sell)
(?s).*
(\d*)
(\d*)
(\d*)

立即获得结果:

sell
sell
buy
230
230
215

预期结果:

sell
sell
buy
500
500
2000

1 个答案:

答案 0 :(得分:0)

@Sweeper找到了答案。

使用(?s).*?代替(?s).*

还在以下链接中找到了解释差异的链接:

What is the difference between .*? and .* regular expressions?