python
2016-09-19 13 views -1 likes 
-1

Andyがリストにあります。どちらのアンディは、文字列内のプログラムは、私がこのようにPythonで単語の大文字小文字を無視する方法はありますか?

if 'Andy' in String1: 
    print ('success') 
else: 
    print("Nothing") 

をしています。しかし、それは唯一のAndyのためではないandyANDYのために働いているTrue

String1 ='Andy is an awesome bowler' 
String2 ='andy is an awesome bowler' 
String3 ='ANDY is an awesome bowler' 

を返す必要があります上部または下部ケースに入っています。私は一致するPatternを使用したくないです。 lower()を使用すると、Andyは小文字に変換できますが、大文字だけでなく大文字と小文字を無視して、両方とも必要になります。出来ますか?

+1

[Pyの文字列を小文字に変換する方法thon?](http://stackoverflow.com/questions/6797984/how-to-convert-string-to-lowercase-in-python) – idjaw

+0

ユーザー正規表現..... –

+3

なぜ文字列全体を下げて'andy'が文字列内にあれば? – idjaw

答えて

3

あなたが大文字に文字列または小文字の最初の変換することができます:あなたはあなたの文字列はASCII文字のみが含まれていることを確認している場合は、

String1 ='Andy is an awesome bowler' 
String2 ='andy is an awesome bowler' 
String3 ='ANDY is an awesome bowler' 

if 'andy' in String1.lower(): # or this could be if 'ANDY' in String1.upper(): 
    print('success') 
else: 
    print('Nothing') 
+0

私は文字列の形でたくさんのデータを持っています。文字列全体を最初に下げてからマッチさせる方がよいでしょう。 – Humty

+0

@ Farhan.Kおそらく、 'andy'.lower()を追加して、解決策が両方の文字列で**の変換が本当に大文字と小文字を区別しないようにする必要があることを明確にする必要があります** 。 – jadsq

1

を次のアプローチを使用します。

if 'andy' in string1.lower(): 
    do something 

あなたの比較です文字列の場合ユニコードを含む:

import unicodedata 

def normalize_caseless(text): 
    return unicodedata.normalize("any_string", text.casefold()) 

def caseless_equal(left, right): 
    return normalize_caseless(left) == normalize_caseless(right) 
関連する問題