我试图找到两个词之间的所有内容(不打算说出哪两个词,因为我不希望人们尖叫“你不能用正则表达式解析 x,而是使用 x 解析器)。我很容易找到开始词和结束词 - 除了结束词不是第一个遇到的词。
我正在使用的是这样的:startword((.*\n)*)endword
这并不像留下结尾词那么糟糕,然后它会匹配到文档的末尾。然而,这不是我需要的。
我读过无数文章说我想要的是一个非贪婪或懒惰的搜索,应该通过放置一个 ? 之后 **。当我在 KATE 中尝试时,它什么都不匹配(startword((.*\n)*?)endword
)。
我也对另一种行为感到困惑 - 我有一些文本出现 endword\n\s**endword 但是当我用它来结束比赛时,它也失败了。但是 match endword\n\s*endword 本身按预期运行。
有没有办法在 KATE 中做懒惰的正则表达式,或者任何人都可以想出另一个解决方案?
谢谢。