【问题标题】:Regular expression - find from start to end but only first match正则表达式 - 从头到尾查找但只有第一个匹配
【发布时间】:2016-09-03 06:55:30
【问题描述】:

我需要在文本中找到两个单词,并替换它们之间的文本。所以我有这个正则表达式:

(START[a-zA-Z\s]+STOP)

还有这段文字:

香蕉车START房子苹果电脑STOP鼠标钱

(匹配粗体)。

但是当我有多个 STOP 词时,这个匹配到最后一个,因为 STOP 也是 [a-zA-Z\s] 模式。

香蕉车START房子苹果电脑STOP鼠标钱STOP橙色

如何更改此正则表达式以在单词第一次出现时停止匹配?这是我需要得到的:

香蕉车START房子苹果电脑STOP鼠标钱STOP橙色

【问题讨论】:

标签: php regex


【解决方案1】:

+ 之后添加?。所以使用这个模式:

/(START[a-zA-Z\s]+?STOP)/

Online Demo

你的模式(没有?首先匹配STOP作为[a-zA-Z\s]+

【讨论】:

  • 如此简单。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多