Python正则表达式在字符串中屏蔽键值对

2024-09-29 23:29:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根像以下内容:在

"assdd ffdsfad 'result_secret_key': 'dfkfaj&^%2', 'auth_matrix': '213fsdf#', 'password': 'adsfa&&*!@#4' and 'app_auth': 'eff#@DS'  dafsdsaf adfs adlsfjasdkjf "

我需要屏蔽所有包含诸如secret,auth,key和password的密钥。在

我的意思是说“结果”;“秘密”;“****”

有人能给我推荐一个用Python实现这一点的regex模式吗。在

最终的字符串应该是比如:在

^{pr2}$

Tags: andkeyauthappsecretdspasswordresult
3条回答
('[^']*?(?=secret|auth|key|password)[^']*':\s*')[^']*'

试试看这个。换掉由\1****'。请参阅演示。在

http://regex101.com/r/rA7aS3/12

^{pr2}$

阿维纳什·拉吉的回答可能更好。。。 但还有一个:

re.sub(": '.*?'",r": '***'",s)

使用re.sub函数。在

>>> s = "assdd ffdsfad 'result_secret_key': 'dfkfaj&^%2', 'auth_matrix': '213fsdf#', 'password': 'adsfa&&*!@#4' and 'app_auth': 'eff#@DS'  dafsdsaf adfs adlsfjasdkjf "
>>> re.sub(r"('\S*?(?:secret|auth|key|password)\S*?'\s*:\s*')[^']*(?=')", r'\1******', s)
"assdd ffdsfad 'result_secret_key': '******', 'auth_matrix': '******', 'password': '******' and 'app_auth': '******'  dafsdsaf adfs adlsfjasdkjf "

\S*匹配零个或多个非空格字符,(?:secret|auth|key|password)匹配给定列表中的单个单词。在

相关问题 更多 >

    热门问题