我试图通过用星号遮住中间的4位数字来遮掩信用卡号。我正在尝试在python中使用RE来解决这个问题。

5415********4935


虽然我已经知道如何做以上。输出为我提供了一系列没有任何逗号的信用卡号

['5415********4935\r\n5275********9664\r\n5206********3509\r\n5332********3074\r\n5204********2617']


我需要在哪里更改代码,以便获得以下输出

['5415********4935,5275********9664,5206********3509,5332********3074,5204********2617']


我的示例代码:

import re,pyperclip

CreditRegex = re.compile(r'''(
(\d{4})
(\s*|\-*)
(\d{4})
(\s*|\-*)
(\d{4})
(\s*|\-*)
(\d{4})

)''',re.VERBOSE)

text = str(pyperclip.paste())
matches=[]

for groups in [CreditRegex.sub(r'\2********\8',text)]:

    groups.rstrip()
    matches.append(groups)

print(matches)

最佳答案

使用替换的最简单方法:

x = ['5415********4935\r\n5275********9664\r\n5206********3509\r\n5332********3074\r\n5204********2617']
x[0] = x[0].replace("\r\n",',')
print x
#prints ['5415********4935,5275********9664,5206********3509,5332********3074,5204********2617']

关于python - 使用RE保护python中的信用卡号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30753672/

10-12 20:19