Мне нужен совет, чтобы мое регулярное выражение работало должным образом. Это расширенный вопрос к этому вопросу .
Я хочу заменить все пароли и ключи на «xxxx» и «zzzz».
import re
d = {"password": "xxxx", "secret-key": "zzzz"}
def replace(x):
key = x.group(1)
val = d.get(key, x.group(2))
return f"{key}={val}"
message = "test&password=secure password=secure and my secret-key=securekey should not be logged."
re.sub(r"(?<=???)(\S+)=(\S+)", replace, message)
Любое количество символы и специальные символы могут быть помещены перед клавишей. В моем примере выше "test &" стоит перед ключевым "паролем", который я ищу. Но также возможно, что ключ, который вы ищете, начинается после пробела (например, password = secure).
В конечном итоге это должно выходить из приведенного выше примера.
message = test&password=xxxx password=xxxx and my secret-key=zzzz should not be logged.