使用Python从URL选择性地编校可变长度键

使用Python从URL选择性地编校可变长度键,python,url-parsing,redaction,Python,Url Parsing,Redaction,我需要使用Python从URL字符串中编辑一个可变长度的键。除了密钥的最后四个字符外,其余所有字符都要进行编辑。为了便于识别,钥匙的最后四个字符应故意保持不被修改。键的字符集是ASCII字母数字。否则,URL必须保持不受影响。用于编校的字符(█)是unicodedata.lookup(“完整块”) 输入示例:https://example.com/data?bar=irish&key=dc3e966e4c57effb0cc7137dec7d39ac 示例输出:https://example.co

我需要使用Python从URL字符串中编辑一个可变长度的键。除了密钥的最后四个字符外,其余所有字符都要进行编辑。为了便于识别,钥匙的最后四个字符应故意保持不被修改。键的字符集是ASCII字母数字。否则,URL必须保持不受影响。用于编校的字符(
)是
unicodedata.lookup(“完整块”)

输入示例:
https://example.com/data?bar=irish&key=dc3e966e4c57effb0cc7137dec7d39ac

示例输出:
https://example.com/data?bar=irish&key=████████████████████████████39ac

我正在使用Python 3.8。有一个不同的问题需要解决,这对我没有帮助


我尝试了一个简单的正则表达式替换,但它只适用于固定长度的键,而我有一个可变长度的键。

一种灵活的方法是使用带有替换函数的正则表达式。正则表达式使用不匹配的正向lookback和lookahead断言

重新导入
导入Unicode数据

_REGEX=re.compile(r)(?实现这一点的灵活方法是使用带有替换函数的正则表达式。REGEX使用不匹配的正向lookback和lookahead断言

重新导入
导入Unicode数据
_REGEX=re.compile(r“(?)?
redact_key('https://example.com/data?bar=irish&key=dc3e966e4c57effb0cc7137dec7d39ac')
'https://example.com/data?bar=irish&key=████████████████████████████39ac'

>>> redact_key('https://example.com/data?key=dc3e966e4c57effb0cc7137dec7d39ac')
'https://example.com/data?key=████████████████████████████39ac'

>>> redact_key('https://example.com/data?bar=irish&key=dc3e966e4c57effb0cc7137dec7d39ac&baz=qux')
'https://example.com/data?bar=irish&key=████████████████████████████39ac&baz=qux'

>>> redact_key('https://example.com/data?bar=irish&baz=qux')
'https://example.com/data?bar=irish&baz=qux'