REGEX -查找字符串之间的文本-首先是最佳的,但第二直到第一次匹配



我正在尝试提取文本"这是我想要的文本";摘自下面的文字。问题是我的正则表达式不是在第一次出现stop时停止,而是第二次。第一部分,向后看在那里,因为第一段文字不一定要在那里。正确的表达是什么?

文本:

test1 THIS IS TEXT I WANT stop but THIS IS another TEXT stop and THIS IS more

正则表达式:

(?<=test1).*stop

当前不期望输出:

这是文本,我想要停止,但这里是另一个文本停止

所需输出:

THIS IS TEXT I WANT stop

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

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

关键是你必须加上?在*之后,它将使前一个操作符变为惰性,这意味着它将在第一次出现时停止

最新更新