如何在 Notepad++ 中为单词列表的所有实例添加相同的前缀?

How can I add the same prefix to all instances of a list of words in Notepad++?

我有一大段文字,其中包含每个单词列表的一个或多个实例。我需要为列表中每个单词的所有实例添加前缀。

这是我正在尝试做的一个例子 -

单词列表:

foo
bar

前缀:

xyz

之前的文本:

onklnagknaubosabdof foo dklfn fknk foo klnksdnia bar dsknska foo knkn bar

之后的文字:

onklnagknaubosabdof xyzfoo dklfn fknk xyzfoo klnksdnia xyzbar dsknska xyzfoo knkn xyzbar

如何在 Notepad++ 中执行此操作?或者是否有其他工具可以轻松地为我做到这一点?

  • Ctrl+H
  • 查找内容:(?=\b(?:foo|bar)\b)
  • 替换为:xyz
  • 取消选中匹配大小写
  • 选中环绕
  • 检查正则表达式
  • 全部替换

解释:

(?=         # start lookahead, make sure we have after:
  \b        # word boundary, to NOT match xyzfoo or foobar
  (?:       # start non capture group
    foo     # literally
   |        # OR
    bar     # literally
  )         # end group
  \b        # word boundary, to NOT match xyzfoo or foobar
)           #end lookahead

给定示例的结果:

onklnagknaubosabdof xyzfoo dklfn fknk xyzfoo klnksdnia xyzbar dsknska xyzfoo knkn xyzbar

屏幕截图:

如果要将 foobar 替换为 xyzfooxyzbar,请删除单词边界:

  • 查找内容:(?=(?:foo|bar))