我是正则表达式的新手,并且遇到以下问题:

正在解析的文本文件:

KeywordA:   123
    93  0   0   524 0   0   78  0   0   6789    0   0
KeywordB:   456
    93  0   0   524 0   0   78  0   0   6789    0   0
KeywordC:   789
    93  0   0   524 0   0   78  0   0   6789    0   0


现在,我想在“ KeywordB:456”之后的下一行中获取所有具有2个或更多数字的数字。

我尝试了表达式/(?<=KeywordB:\t456\n\t)(\d{2,})/g

但是有了这个,我只会得到第一个数字(并且因为93是一个具有多个位数的数字)。

甚至有可能通过RegEx获得所有适当的匹配,而您想在一个模式之后有一个模式进行多个匹配并进行换行,或者我错过了一些基本知识?

最佳答案

使用.net,您可以使用可变长度的lookbehinds:

(?<=^KeywordB:\s*456\r?\n.*)\b\d{2,}


(使用多行选项)

demo

10-04 11:30
查看更多