REGEX-结合积极的先行条件和条件?

时间:2018-08-15 20:09:12

标签: php regex preg-match

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

我想始终找到字符串的开头。在示例中,我将其称为"MatchMe!",但实际上可以是任何东西。 Part 1Part 2Part 3Part 4总是相同的(虽然不尽相同,但我可以可靠地对它们进行正则表达式)

是否有一种方法可以尝试对Part 1进行正向前瞻,如果不存在,请尝试对Part 2进行正向前瞻,如果不存在,请尝试进行正向前瞻Part 3,最后尝试与Part 4相同吗?还是我把事情复杂化了?

我很糟糕的尝试在这里,但它给了我一个问题的构想:-)

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

再次感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用

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

请参见regex demo

详细信息

  • ^-字符串的开头
  • .*?-除换行符以外的任何0+个字符,并且尽可能少
  • (?=\s*(?:Part1|Part2|Part3|Part4))-字符串中紧随其后的位置,后跟
    • \s*-超过0个空格
    • (?:Part1|Part2|Part3|Part4)-non-capturing group中列出的替代方法之一。