首页 > 解决方案 > REGEX - 将积极的前瞻与条件相结合?

问题描述

这里又给你一个!我已经摆弄了一段时间,但我迷路了。我认为实现这一目标的关键可能是将条件与积极的前瞻性结合起来?

我想总是找到一个字符串的开头。我"MatchMe!"在示例中调用了它,但实际上它可以是任何东西。Part 1, Part 2,Part 3Part 4总是相同的(虽然不一样,但我可以可靠地正则表达式)

有没有办法尝试对 进行积极的前瞻Part 1,如果不存在,请尝试使用 进行积极的前瞻,如果不存在,请尝试使用 进行积极的前瞻,最后尝试使用 相同的Part 2前瞻?还是我把事情复杂化了Part 3Part 4

我糟糕的尝试就在这里,但它让我了解了我的问题:-)

https://regex101.com/r/TvgXXB/1

再次感谢!

标签: phpregexpreg-match

解决方案


您可以使用

^.*?(?=\s*(?:Part1|Part2|Part3|Part4))

查看正则表达式演示

细节

  • ^- 字符串的开始
  • .*?- 任何 0+ 字符,除了换行符,尽可能少
  • (?=\s*(?:Part1|Part2|Part3|Part4))- 字符串中的位置,紧随其右侧,后跟
    • \s*- 0+ 个空格
    • (?:Part1|Part2|Part3|Part4)-非捕获组中列出的备选方案之一。

推荐阅读