正则表达式,选择最接近的匹配项

发布于 2021-01-29 19:18:57

假设以下单词顺序

BLA text text text  text text text BLA text text text text LOOK text text text BLA text text BLA

我想做的是将文本从BLA提取到LOOK,但是最接近外观的BLA。即我想得到

BLA text text text text LOOK

我应该如何使用正则表达式呢?我得到了一个可行的解决方案,但是效率极低。

BLA(?!.*?BLA.*?LOOK).*?LOOK

有没有更好,更高效的方法来实现此模式的匹配?

我想做的是:我想匹配BLA,然后向前进行前瞻,直到使用LOOK进行正向前进或使用BLA进行负向前进。但是我不知道将其放入正则表达式中的方法。

作为引擎,我在python中使用re。

关注者
0
被浏览
188
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    (?s)BLA(?:(?!BLA).)*?LOOK

    尝试这个。参见演示

    或者,使用

    BLA(?:(?!BLA|LOOK)[\s\S])*LOOK
    

    为了更安全。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看