REGEX - 在字符串之间查找文本 - 第一个是可选的,但第二个仅在第一次匹配之前

REGEX - Find text between strings - first optinal, but second only until first match

我正在尝试从下面的文本中提取文本“这就是我想要的文本”。 事情是我的正则表达式不会在第一次出现停止时停止,而是在第二次出现时停止。 第一部分,lookbehind 在那里,因为第一个文本不必在那里。 正确的表达方式是什么?

正文:

test1 THIS IS TEXT I WANT stop but here is another text stop and here is more

正则表达式:

(?<=test1).*stop

当前不需要的输出:

THIS IS TEXT I WANT stop but here is another text stop

期望的输出:

THIS IS TEXT I WANT stop

解决方案就是像这样编写正则表达式

(?<=test1)(.*?stop)

重点是你必须放一个 ?在 * 之后,它会使前一个运算符变得懒惰,这意味着它会在第一次出现时停止