首页 > 解决方案 > Negative Lookahead - 查找字符串的最后一次出现

问题描述

我需要找到 RegEx 模式的最后一次出现。我认为可以使用 Negative Lookahead,但我不知道它是如何工作的。

请帮忙。

模式:###\s\d+/\d+\s-\s\w+\s\d+,\s\d{4}

期望的结果:“### 2/14 - 2021 年 7 月 30 日”

示例文本:

# Note Title

Bunch of text

### 1/14 - July 30, 2021

More text. Blah blah.

### 2/14 - July 30, 2021

标签: regex

解决方案


您可以使用否定前瞻来表述最后一次出现的情况,该否定前瞻断言目标模式在输入的稍后阶段不会再次出现:

###\s\d+/\d+\s-\s\w+\s\d+,\s\d{4}(?!.*###\s\d+/\d+\s-\s\w+\s\d+,\s\d{4})

演示

请注意,我假设在上述模式中将启用 dot all 模式。如果您的正则表达式工具不支持全点模式,则将.*否定前瞻中的[\s\S]*.


推荐阅读