正则表达式|匹配第一个模式|如果不匹配则停止

时间:2019-03-07 08:37:32

标签: regex

要匹配的字符串:

id=abc somethingelse value=1 value=2 value=3 value=1

字符串不匹配:

id=abc somethingelse value=2 value=2 value=3 value=1

我想:

  • 跳过somethingelse字符串,即无法预测该字符串是什么,因此必须使用通配符
  • 匹配首次出现的value=1
  • 如果第一个value不等于1,请忽略其他任何出现 然后中止因此,第二个示例不应匹配。

我在regex101中尝试过id=abc.*?value=1,但显然它并没有停留在第一个值...

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以将正则表达式用于负前瞻:

^id=abc(?:(?!value=).)*value=1

RegEx Demo

关键部分是使用(?:(?!value=).)*,这意味着匹配任何字符,只要它后面没有value=(由否定的(?!value=)强制执行)即可。