【问题标题】:Replace same word in different lines with random word用随机单词替换不同行中的相同单词
【发布时间】:2018-12-31 17:06:09
【问题描述】:

notepad++中如何用随机单词替换不同行中的相同单词

test
test
test
test

将替换为随机字符串:

sdwd
sasd
wdsa
dsas

【问题讨论】:

  • 你不能用 Notepad++ 做这样的工作。你必须用你最喜欢的脚本语言编写脚本。

标签: notepad++


【解决方案1】:

正则表达式本身不会生成随机数据。它们只能匹配某种模式。它们也可用于替换某些模式,但替换必须是固定的,或者基于输入数据。因此,如果您需要一些随机替换,则需要正则表达式和一些编程语言(通常是 脚本

即便如此,如果您不介意预先生成一些随机单词,您仍然可以通过 使用 notepad++ 来完成此任务。

这个想法是有一个具有这种结构的文件:

The data
you want 
to substitute

<SOME DELIMITER>
a list of random words
there must exist enought quantity of words/strings
<SOME DELIMITER>

例如:

a test on the first test phrase
a second test on the second test phrase

some test some test
some test some test

some test some test
some test some test

some test some test
some test some test

@@@@@@@@
qpfdhong
vvbpkwhi
aqhvuxxi
vtgaxofv
vwclbdxf
ecspqfdp
qqfimcum
bfqznfsa
pjwzjvzz
ybgvxzcl
tvsxpczg
hczduhkk
ydryudel
gnayvwjs
lncmqude
spilblsk
@@@@@@@@

您可以在此页面上生成随机单词/字符串:https://www.random.org/strings/

所以想法是使用宏来记录这些动作:

  1. 用第一个替换词替换第一个“测试”词
  2. 删除第一个替换词/字符串
  3. 重复直到所有单词都被替换

录制宏后,请记住您可以保存它以供以后重复使用。这样就不用再录了。

这是录制宏的过程:

  1. 点击录制宏按钮
  2. 菜单 => 搜索 => 前往 (Control + G) 1 => 前往
  3. 搜索和替换(Control + H
  4. Find What => \btest\b(?=[\s\S]*\r?\n@@@@@@@@\r?\n(\w+))(其中 'test' 是要替换的单词,而 '@@@@@@@@' 是随机单词的分隔符)
  5. 替换为 => \1
  6. 查找下一个
  7. 替换
  8. 关闭搜索和替换对话框。
  9. 搜索 => 查找 (Control + F)
  10. 找到什么 => @@@@@@@@\r?\n\K
  11. 查找下一个
  12. 关闭查找对话框。
  13. 搜索 => 书签 => 切换书签
  14. 搜索 => 书签 => 删除带书签的行
  15. 停止宏录制
  16. (可选)使用 2 Control + Z 撤消上次替换。这只是为了一次性测试整个替换。
  17. 使用Run a macro multiple times 按钮播放宏
  18. 要运行的宏 =>“当前录制的宏”或者如果您已经保存了宏,请使用下拉框搜索它。
  19. “运行到文件末尾”
  20. 运行

结果:

a qpfdhong on the first vvbpkwhi phrase
a second aqhvuxxi on the second vtgaxofv phrase

some vwclbdxf some ecspqfdp
some qqfimcum some bfqznfsa

some pjwzjvzz some ybgvxzcl
some tvsxpczg some hczduhkk

some ydryudel some gnayvwjs
some lncmqude some spilblsk

@@@@@@@@
@@@@@@@@

最后,这是一个过程的视频。

请记住,如果您已经录制并保存了宏,则只需运行第 17 步到第 20 步。

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2016-07-11
    • 2013-10-13
    • 2014-06-03
    • 2017-10-07
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多