.net中的正则表达式查找某个字符串之后的所有事件

时间:2019-05-07 08:05:03

标签: regex

是regexp的新手。我想匹配某个特定模式之后出现的所有字符串,但是我无法提出正则表达式来实现(在.net中)。

字符串看起来像这样:

MAIN SKUID="AAAAAA" any number of characters here  AdHocID="123456" some characters AdHocID="856322224" ..some chars again etc.....

我只想查找所有出现“ AdHocID = digits(包括引号)”的地方

MAIN SKUID="AAAAAA"之前的某个地方。如果SKUID不是AAAAAA,那么我就不需要那些AdhocID字符串。

当前我正在使用正则表达式模式

(?<= SKUID="AAAAAA" )(?:.*)AdHocID={d,} .*

我搜索了线程并尝试了一些没有运气的模式

2 个答案:

答案 0 :(得分:1)

您可以将.*部分添加到.NET支持的lookbehind中。

要匹配数字,请使用\d+。使用看起来像\d{1,}

的花括号
(?<=SKUID="AAAAAA" .*)\bAdHocID="\d+"

.NET regex demo

答案 1 :(得分:0)

您也可以通过使用\G令牌来代替连续查找,例如

(?:\G(?!^)|SKUID="AAAAAA").*?\b(AdHocID="\d+")

Demo