Notepad ++正则表达式可在其他字符位置插入随机字母或数字

时间:2019-02-14 23:36:53

标签: python regex notepad++

我希望能找到一种简单的搜索方式,并在Notepad ++中进行替换,以便通过以每秒随机的字母和数字(“其他”)字符填充文本,然后通过另一个宏再次将其反转来稍微混淆文本。

所以:

banana

将成为:

bma0ndaNn4aR

(b?a?n?a?n?a?)

...然后可以通过使用退格键删除所有其他字符来再次撤消此操作。

...

到目前为止,我发现了这种方法:

(?<=.)(?!$)

How to insert spaces between characters using Regex?

但是据我所知,这实际上并没有捕获,因此我不能用它代替我发现的用于打印随机字母和数字的表达式,例如:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])$

我敢肯定对此进行了调整,然后可以通过将相同的搜索替换为\b来颠倒一切。

1 个答案:

答案 0 :(得分:0)

有更好的方法,但是您可以使用以下python原型作为创建自己的脚本的起点:

import string
import random

inputText = 'banana'

#encoding 
obfuscatedText = ''.join([x + random.choice(string.ascii_letters+string.digits) for x in inputText])
print(obfuscatedText)

#decoding
originalText = ''.join([x for x in obfuscatedText][0:len(obfuscatedText)-1:2])
print(originalText)

说明:

编码:

  • [x for x in inputText]将根据输入字符串生成一个字符数组
  • random.choice(string.ascii_letters+string.digits)需要一个字符 来自string.ascii_lettersstring.digits的联合
  • x + random.choice(string.ascii_letters+string.digits)通过将输入的每个字符与生成的char串联来创建2个char字符串。
  • 通过''.join()操作,您可以从char数组中创建一个字符串

解码:

  • [x for x in obfuscatedText][0:len(obfuscatedText)-1:2]仅允许您获取
  • 位于索引0,2,4,6,...上的
  • char
  • ''.join()操作将从char数组重新生成一个字符串

执行:

$ python obfuscate.py 
biaLncaIn4aE
banana