Replace text with random values
This cannot be done with normal regular-expression replacement in Notepad++. The best way to do it in Notepad++ is with the Pythonscript plugin.
Starting in v7.8.1, Python Script is available using Plugins Admin from inside Notepad++, and you no longer need to install it manually as described in this Guide: How to install the PythonScript plugin on Notepad++.
Create a script from Notepad++ main menu (Plugins >> PythonScript >> New Script) using the code below and save the file (e.g. replace-random.py
)
import re
import random
import hashlib
def calculate(match):
# copy match
IdFound = match.group(0)
# make sure passing an encoded string
IdNew = int(hashlib.sha256(IdFound.encode('utf-8')).hexdigest(), 16) % 10**9
# format return string
return '"Id": "' + str(IdNew) + '",'
editor.rereplace(r'"Id": "[A-Za-z0-9]+",', calculate)
Let's assume the following JSON records are to be processed (note: the first and last ID are the same).
{
"Order ID": 4984,
"Parts group": "INTERIO",
"Id": "3K2kVk023",
"Order description": "justo. Nullam"
},
{
"Order ID": 1925,
"Parts group": "ELECTRA",
"Id": "3L2kWk024",
"Order description": "imperdiet"
},
{
"Order ID": 8651,
"Parts group": "INTERIO",
"Id": "3K2kVk023",
"Order description": "eu pede mollis"
}
- Open the file you want to edit.
- Run the script (Plugins >> PythonScript >> Scripts >> replace-random)