Notepad ++ Regex для вставки случайной буквы или цифры в каждую другую позицию символа - PullRequest
0 голосов
/ 15 февраля 2019

Я надеюсь разобраться в простом поиске и замене в Notepad ++, чтобы слегка запутать текст, засоряя его случайными буквами и цифрами каждый второй («другой») символ, а затем смогу повторить это снова с помощью другого макроса.

Итак:

banana

станет:

bma0ndaNn4aR

(b? A? N? A? N? A?)

...И затем можно будет отменить это снова, удалив все остальные символы с пробелом.

...

Пока я нашел этот метод:

(?<=.)(?!$)

Как вставить пробелы между символами с помощью Regex?

Но, насколько я понимаю, на самом деле это не захват ничего, поэтому я не могу использовать это для замены выражениямиЯ нашел для печати случайных букв и цифр, таких как:

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

Я уверен, что настройка сработает, а затем я могу отменить все это, заменив тот же поиск на \b.

1 Ответ

0 голосов
/ 15 февраля 2019

Существуют более эффективные способы, но вы можете использовать следующий прототип 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_letters и string.digits
  • x + random.choice(string.ascii_letters+string.digits) создайте 2 строки символов путем объединения каждого символа ввода с сгенерированным символом.
  • Операция ''.join() позволит вам создать строку из массива символов

Декодирование:

  • [x for x in obfuscatedText][0:len(obfuscatedText)-1:2] позволит вам получить только символ
  • , который находится по индексу 0,2,4,6,...
  • в операции ''.join()сгенерирует строку из массива char

Выполнение:

$ python obfuscate.py 
biaLncaIn4aE
banana
...