2017-07-01 22 views
2

文字列の最初の数文字(数値は可変です)を確認したいと思います。 など。文字列の最初の数文字を確認する

a = '+6221-123-4567' 

と私は最初の数文字を手動で文字の数に基づいて分離することなく、私はプログラム的にそれをしたいと思っ

b = ['021', '+6221', '(021)', '(+62)'] 

であるかどうかを確認したいと思います:

if a[:3] in ['021']: print('yes') 
if a[:5] in ['+6221', '(021)', '(+62)']: print('yes') 

ありがとうございました!

答えて

5

str.startswith(プレフィックスは、[開始、[エンド]])文字列が接頭辞で始まる場合はTrue

戻り、そうでない場合はFalseを返します。 接頭辞には、検索する接頭辞のタプルを使用することもできます。

docs

この、 a.startswith(tuple(b))を試してみてください。

完全なコード、

if a.startswith(tuple(b)): 
    print("yes") 
+1

! –

+0

ありがとう!シンプルでエレガント:) – Lam

1

あなたはこれを試すことができます。

a = '+6221-123-4567' 

b = ['021', '+6221', '(021)', '(+62)'] 

b = [i[1:-1] if "(" in i else i for i in b] 

#you can generate a list of characters: 

new_list = [a[:5][:i+1] for i in range(5) if a[:5][:i+1] in b] 

print(new_list) 

if len(new_list) > 0: 
    print "yes" 

else: 
    print "no" 

出力:私は.startswithは、複数のプレフィックスを探し知らなかった

['+62', '+6221'] 

yes 
+0

ありがとうございました! – Lam

関連する問題