首页 > 解决方案 > 使用 python 正则表达式用星号替换密码

问题描述

我有几个字符串:

strings = [
'some.code(user, password="aA1$")',
'some.code("a1", passwd="aA1$", c=0)',
"some.code(user, passw='aA1$')\n",
]

我想使用 python regex 用星号 (*) 替换所有密码,如下所示:

some.code(username, password="****")
some.code("a1", passwd="****", c=0)
some.code(username, passw='****')

我已经做到了,但是我仍然必须使用 python 字符串“替换”方法:

pattern = r'\bpass\w+=[\'|\"](.+?)[\'|\"]'
for s in strings:
    password = re.search(pattern, s).group(1)
    print(s.replace(password, '*'*len(password)))

输出:

some.code(user, password="****")
some.code("a1", passwd="****", c=0)
some.code(user, passw='****')

有没有办法通过正则表达式模式实现相同的目标?

标签: pythonregex

解决方案


推荐阅读