正则表达式首次出现?

Ben*_*esh 10 regex

假设我有以下字符串:

这是为了测试而进行的测试.这只是一个测试.结束.

我想选择this is a testthis is only a test.我需要做什么?

我试过的以下正则表达式产生了一个愚蠢的结果:

this(.*)test (我也想捕捉它之间的东西)

回报 this is a test for the sake of testing. this is only a test

看起来这可能是我忘记的事情.

And*_*y E 26

正则表达式是贪婪的,这意味着它将捕获尽可能多的字符,这些字符属于.*匹配.为了使它非贪婪尝试:

this(.*?)test

?修改将使其捕捉尽可能少的文字尽可能在比赛中.


Pla*_*ure 9

Andy E和Ipsquiggle有正确的想法,但我想指出你可能想要添加一个单词边界断言,这意味着你不想处理那些在其中有"this"或"test"的单词 - 只有这些话本身.在Perl和类似的"\ b"标记.

事实上,this(.*?)test匹配"蓟是最伟大的",你可能不想要.

你想要的模式是这样的: \bthis\b(.*?)\btest\b