-5

私がIBANを持っているとしましょう:NL20INGB0001234567

最後の 4 桁を除くすべての数字を次のように変更するにはどうすればよいですか*

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

NL*20* 以外のすべての数字

4

6 に答える 6

1

最も簡単ですか?

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

結果:

'NL20INGB****4567'
于 2013-11-13T17:08:39.537 に答える
0

質問の言い方に基づいて、IBAN文字列をフォーマットしたいと思います

##################

########******####

これに基づいて、簡単な解決策はこの関数を書くことです:

def ConverterFunction(IBAN):
    return IBAN[:8]+"******"+IBAN[14:]

次の行で呼び出します。

ConverterFunction(<your IBAN here>)

もちろん、課題を添付したりprints、必要に応じて。

編集:少し説明も必要かもしれません。

として使用しているものはすべてIBAN文字列であり、文字列はsliced. スライスすることで、人は弦の一部を拾い上げ、他の部分を置き去りにすることができます。次のように、各文字の位置のインデックスを使用します。

This is OK
0123456789

インデックスは常に0ではなくから始まることに注意してください1

文字列スライスの例:

examplestring = "EXAMPLE!"
print examplestring[:3] # "[:3]" means "from beginning to position 3"
print examplestring[5:] # "[5:]" means "from position 5 to end of string"
print examplestring[3:5] # "[3:5]" means "from position 3 to position 5"

出力:

>> EXAM
>> LE!
>> MPL

したがって、私のソリューションでは、関数の機能ConverterFunction(IBAN)は次のとおりです。

#Takes string "IBAN"
#Chops off the beginning and end parts you want to save
#Puts them back together with "******" in the middle

理解?

ハッピーコーディング!

于 2013-11-13T17:11:18.133 に答える
0
>>> iban = "NL20INGB0001234567"
>>> iban[:4] + ''.join(i if i.isalpha() else "*" for i in iban[4:-4]) + iban[-4:]
'NL20INGB******4567'
于 2013-11-13T17:08:26.407 に答える
0
s = "IBAN: NL20INGB0001234567"

s = [ele for ele in s.split(':')[-1] if ele.strip()]

mask = [1 for ele in range(len(s) - 10)] + [0] * 6 + [1] * 4

print ''.join(["*" if mask[i] == 0 else ele for i, ele in enumerate(s)])

出力:

NL20INGB******4567
于 2013-11-13T17:09:13.770 に答える