将字符串的一部分改为*

2024-10-02 08:23:38 发布

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

假设我有一个IBAN:NL20INGB0001234567

如何将除最后4位以外的所有数字更改为*

Input: NL20INGB0001234567
Output: NL20INGB******4567

除NL*20*以外的所有数字*


Tags: inputoutputibannl数字nl20ingbnl20ingb0001234567
3条回答

最简单的?你知道吗

import re
s='NL20INGB0001234567'
re.sub(r'\d+(\d{4})$',r'****\1',s)

结果:

'NL20INGB****4567'

使用regex

>>> import re
>>> strs = 'NL20INGB0001234567'
>>> re.sub(r'(\d+)(?=\d{4}$)', lambda m:'*'*len(m.group(1)), strs)
'NL20INGB******4567'
tmp = ''
iban = 'NL20INGB0001234567'
for i in iban[4:-4]:
     if i.isdigit():
             tmp += '*'
     else:
             tmp += i

iban = iban[:4] + tmp + iban[-4:]

相关问题 更多 >

    热门问题