2016-09-19 3 views
-1

Ich möchte Andy in der Liste finden. Entweder Andy kommt in Groß- oder Kleinschreibung in String sollte das Programm TrueWie ignoriert man auch Kleinbuchstaben eines Wortes in Python?

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

kehre ich auf diese Weise

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

tue Aber es funktioniert nur für Andy nicht für andy oder ANDY. Ich möchte nicht Pattern passend verwenden. Mit lower() kann die Andy in Kleinbuchstaben umgewandelt werden, aber ich brauche beide auf einmal zu ignorieren sowohl Klein- als auch Großbuchstaben. Ist es möglich?

+1

Mögliches Duplikat von [Wie konvertiert man Zeichenfolge in Kleinbuchstaben in Py thon?] (http://stackoverflow.com/questions/6797984/how-to-convert-string-to-lowercase-in-python) – idjaw

+0

Benutzer Regex ..... –

+3

Warum nicht nur die gesamte Zeichenfolge absenken und sehen wenn 'andy' in der Zeichenkette ist? – idjaw

Antwort

3

können Sie die Zeichenfolge konvertieren oder Kleingroßbuchstaben zuerst:

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

K Ich habe viele Daten in Form von Strings. Es wird nicht besser sein, zuerst die ganze Saite abzusenken und dann zu stimmen. – Humty

+0

@ Farhan.K Sie sollten wahrscheinlich ein 'andy'.lower() hinzufügen, um zu verdeutlichen, dass die ** Transformation für beide Zeichenfolgen durchgeführt werden muss, damit die Lösung wirklich die Groß-/Kleinschreibung nicht beachtet ** wie in der Frage und im Beispiel angegeben . – jadsq

1

Wenn Sie sicher sind, dass Sie String nur ASCII-Zeichen enthält, den folgenden Ansatz verwenden:

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

Wenn Ihr Vergleich Strings involve unicodededata:

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) 
Verwandte Themen