如何获得正则表达式的第一个单词

时间:2015-11-27 17:06:28

标签: php 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}

以为我会得到第一个,只有那一个。

1 个答案:

答案 0 :(得分:2)

正则表达式是贪婪的,这意味着它尽可能地匹配。使用?进行非贪婪:

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

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