Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式在第一次出现时停止_Regex_Vb.net - Fatal编程技术网

Regex 正则表达式在第一次出现时停止

Regex 正则表达式在第一次出现时停止,regex,vb.net,Regex,Vb.net,所以我有这段文字: :40C:something1 something2 :42A: something3 something4 something5 :42B: something6 something7 :42C: somethin8 something9 在第一次出现:42X:…之后,我需要停止。。。X为字母(任何字母) 因此,如果我从:42A开始,返回的文本将是: :42A:什么 有些事 什么 但问题是:42B:可能不在那里,也可能是:42C:所以如果在:42A:我没有

所以我有这段文字:

:40C:something1

something2

:42A: something3

something4

something5

:42B: something6

something7

:42C: somethin8

something9
在第一次出现:42X:…之后,我需要停止。。。X为字母(任何字母)

因此,如果我从:42A开始,返回的文本将是:

:42A:什么

有些事

什么

但问题是:42B:可能不在那里,也可能是:42C:所以如果在:42A:我没有:42B:但我有:42C:它应该停在:42C:

所以我需要一个从:42A:开始并在:42X:第一次出现后停止的模式: 而且它还需要是多行的,因为我不知道如何在VB.NET中使用多行,所以我使用(.|\n)*作为模式

到目前为止,我试过这个,但没有成功:

(?<=:42A:)((.|\n)*)(?=:42.:)

(?您的模式
(?Regex不是一个处理引擎,它是一种模式匹配语言。我认为你需要将你的Regex与一个处理引擎结合起来。一些可以实现你所说的排序规则的东西。我从2个月前开始使用这种Regex模式,所以它可以工作,我经常在类似的情况下使用它……但我无法理解它怎么做这个。问题是,现在它一直在运行,直到最后一次出现,但我需要在第一次出现后停止…我不知道如何做…我尝试了“?”但没有成功
^:42A:.*(?:\r?\n(?!:42[A-Z]).*)*