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子串的磁卡字符串
通过 php 和 regex 从文本字符串中查找 url? [复制]