在这里再给您一个!我已经摆弄了一段时间,但我迷路了。我认为实现这一目标的关键可能是将条件与积极的前瞻相结合?
我想始终找到字符串的开头。在示例中,我将其称为"MatchMe!"
,但实际上可以是任何东西。 Part 1
,Part 2
,Part 3
和Part 4
总是相同的(虽然不尽相同,但我可以可靠地对它们进行正则表达式)
是否有一种方法可以尝试对Part 1
进行正向前瞻,如果不存在,请尝试对Part 2
进行正向前瞻,如果不存在,请尝试进行正向前瞻Part 3
,最后尝试与Part 4
相同吗?还是我把事情复杂化了?
我很糟糕的尝试在这里,但它给了我一个问题的构想:-)
https://regex101.com/r/TvgXXB/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中列出的替代方法之一。