如何找到两个连续的单词,但只计算最短的字符串

如何找到两个连续的单词,但只计算最短的字符串

我希望能够在 Notepad++ 中搜索以 开头[startWord]并以 结尾的字符串[endWord]

附加条件:

  1. [startWord][endword]在字符串中各自只能出现一次;
  2. 搜索应返回符合条件的最短字符串`

例子

[startWord]:     [endWord]猫狗

# Text to search

The DOG walks in an alley.
The CAT walks down the street.
The CAT loves sardines,
but when the CAT sees a shadow
which can only be that of a DOG,
the CAT runs away from the supposed DOG.

搜索结果应该是

CAT runs away from the supposed DOG

如何在 Notepad++ 中执行该搜索

答案1

正则表达式

此正则表达式搜索与单词的最后一个实例匹配的字符串cat,后跟以单词结尾的任意数量的字符dog

\bcat\b(?!.+\bcat\b).+?\bdog\b
代币 笔记
(?!...) 负面前瞻
. 匹配任意单个字符
+? 匹配前一个标记 1 至无限次(惰性)
\b 词边界

脚步

  1. CTRL+F调出Find对话框
  2. 匹配以下设置:
       ☐ 匹配大小写(未勾选)
       ☑ 正则表达式(已勾选)
  3. 在“查找内容”字段中输入 RegEx
  4. 单击Find Next(或查找全部)
     





相关内容