使用 re.sub 屏蔽多个敏感数据?
Mask multiple sensitive data using re.sub?
我想屏蔽一个字符串中的几个值。此调用按预期适用于单个值。
message = "my password=secure and my private_key=securekey should not be logged."
message = re.sub(r"(?is)password=.+", "password=xxxx", str(message))
正则表达式必须是什么样子才能屏蔽字典中的多个值?
d = {"password": "xxxx", "private_key": "zzzz"}
message = re.sub(r"(?is)\w=.+", lambda m: d.get(m.group(), m.group()), message)
是否也可以在同一个正则表达式调用中用其他值替换值?
message = re.sub(r"data_to_mask", "xzxzxzx", str(message))
你可以这样做:
message = "my password=secure and my private_key=securekey should not be logged."
import re
d = {"password": "xxxx", "private_key": "zzzz"}
def replace(x):
key = x.group(1)
val = d.get(key, x.group(2))
return f"{key}={val}"
re.sub(r"\b(\w+)=(\w+)", replace, message)
my password=xxxx and my private_key=zzzz should not be logged.
我想屏蔽一个字符串中的几个值。此调用按预期适用于单个值。
message = "my password=secure and my private_key=securekey should not be logged."
message = re.sub(r"(?is)password=.+", "password=xxxx", str(message))
正则表达式必须是什么样子才能屏蔽字典中的多个值?
d = {"password": "xxxx", "private_key": "zzzz"}
message = re.sub(r"(?is)\w=.+", lambda m: d.get(m.group(), m.group()), message)
是否也可以在同一个正则表达式调用中用其他值替换值?
message = re.sub(r"data_to_mask", "xzxzxzx", str(message))
你可以这样做:
message = "my password=secure and my private_key=securekey should not be logged."
import re
d = {"password": "xxxx", "private_key": "zzzz"}
def replace(x):
key = x.group(1)
val = d.get(key, x.group(2))
return f"{key}={val}"
re.sub(r"\b(\w+)=(\w+)", replace, message)
my password=xxxx and my private_key=zzzz should not be logged.