REGEX - 在字符串之间查找文本 - 第一个可选,但在第一个匹配之前只有第二个

Posted

技术标签:

【中文标题】REGEX - 在字符串之间查找文本 - 第一个可选,但在第一个匹配之前只有第二个【英文标题】:REGEX - Find text between strings - first optinal, but second only until first match 【发布时间】:2021-08-04 07:30:17 【问题描述】:

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

文字:

test1 这是我想要停止的文本,但这里是另一个文本停止,这里还有更多

正则表达式:

(?<=test1).*stop

当前不需要的输出:

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

期望的输出:

这是我要停止的文本

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于REGEX - 在字符串之间查找文本 - 第一个可选,但在第一个匹配之前只有第二个的主要内容,如果未能解决你的问题,请参考以下文章

RegEX - 查找Track 1和Track 2子串的磁卡字符串

使用 RegEx 在字符串中查找特定文本后的数字

通过 php 和 regex 从文本字符串中查找 url? [复制]

Python Regex - 在html标签之间查找字符串[重复]

捕获可选连字符正则表达式之间的单词

在 C++ 中使用 regex/boost 查找 2 个数字之间的数字