用随机单词替换不同行中的相同单词

时间:2018-12-31 17:06:10

标签: notepad++

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

test
test
test
test

将替换为随机字符串:

sdwd
sasd
wdsa
dsas

1 个答案:

答案 0 :(得分:1)

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

即使如此,如果您不介意预先生成一些随机单词,则仍然可以通过使用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. 查找=> \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的步骤即可。

Random words rubstitution