【问题标题】:How can I add the same prefix to all instances of a list of words in Notepad++?如何在 Notepad++ 中为单词列表的所有实例添加相同的前缀?
【发布时间】:2019-08-23 00:59:01
【问题描述】:

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

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

单词列表:

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++ 中执行此操作?或者是否有其他工具可以轻松为我做到这一点?

【问题讨论】:

  • blah foobar blah 的结果必须是什么?

标签: text notepad++ prefixes


【解决方案1】:
  • 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))

【讨论】:

  • 感谢正则表达式的完整解释!这对我特别有帮助,因为我对正则表达式语法不太熟悉。
猜你喜欢
  • 2021-06-13
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 2018-06-03
相关资源
最近更新 更多