如何获得第一个单词regex


how do I get the first word regex

我是regex的新手,我正在努力解决这个问题:

This is some text 1
This is some text 2
This is some awesome text
Test!
Test!
This is some text 3
This is some text 4
This is some awesome text

这是几行文字,我试图从"这是一些文字1"一直到第一个"测试!",但我一直在做第二个"测试"。我怎么能让它只捕获第一个"测试!"?

以下是我所做的:

(.*)(Test!)

基本上都拿到了,然后在测试中停下来!(我首先想到的是第一个)然后我尝试了:

(.*)(Test!)['f'r't'n]

还有第二个我只是把其他的都包括在内然后我尝试了:

(.*)(Test!){1}

我以为我会得到第一个,也是唯一一个。

Regex是贪婪的,这意味着它匹配的时间尽可能长。使用?使非贪婪:

(.+?)Test!
   ^ make it non-greedy

Stub。不要忘记s选项使.与换行符匹配。