テキスト文書ですべてのクレジットカード番号を見つけることができましたが、フィルタをかけて '4'または '5'で始まるカードのみを印刷します。私は無用に^記法を試しました。どこが間違っていますか?Python正規表現フィルタ初期番号
#credit cards - visa starts with '4' and mastercard starts with '5'
re.findall(r'(?:[0-9]{4}-){3}[0-9]{4}|[0-9]{16}|(?:[0-9]{4}\s?){3}[0-9]{4}|[0-9]{16}', reg)
#reg contains the following cc numbers
['4916 0636 4700 5548',
'4556-0775-2249-5041',
'5119 0966 3584 2334',
'5108-5708-8343-5937',
'1234 2345 3456 4567',
'2132-3523-3211-3356',
'5118-3323-1315-9900']
どのように単に 'x.startswith( '4')またはx.startswith(5 '')'を使用してはどうですか? – mkrieger1
@ mkrieger1 'startswith()'は文字列のタプルを受け入れます。 'x.startswith(( '' 4 '、' 5 '))'。 – alecxe