【发布时间】:2018-03-04 23:24:05
【问题描述】:
我正在尝试使用 RegEx 查找一个字符串,但仅当它出现在另一个字符串之后和下一次出现第三个字符串之前。
使用此文本:
one (random text) abc (random text) end two (random text) abc (random text) end three (random text) abc (random text) end
我想找到“abc”,只要它出现在“two”之后和下一个“end”之前。如果“二”后面有“和”,中间没有“abc”,则不返回任何匹配项。
下面的表达式将从“two”匹配到下一个“end”,但我不知道“abc”应该放在哪里:
(?s)(?i)two(.*?)end
以下表达式不起作用,因为它在“二”和“三”之后的“结束”之间找到了一个“abc”:
(?s)(?i)two(.*?)abc(.*?)end
我在使用 RegEx 来确定文件是否满足条件的程序中使用它,所以我不确定它使用的是什么语言。程序只需要知道条件是否存在,所以表达式实际返回的结果并不重要——只需要知道是否存在匹配即可。
任何帮助将不胜感激!
进行了编辑,以阐明自始至终还有其他随机文本并阐明所请求的行为。
【问题讨论】:
标签: regex