784 Stimmen

Wie führe ich einen String-Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durch?

Wie kann ich Groß-/Kleinschreibung unempfindlich String-Vergleich in Python tun?

Ich möchte den Vergleich einer regulären Zeichenkette mit einer Repository-Zeichenkette auf eine sehr einfache und pythonische Weise kapseln. Ich möchte auch die Möglichkeit haben, Werte in einem Diktat von Zeichenfolgen mit regulären Python Zeichenfolgen gehasht nachschlagen.

9voto

Shiwangi Punkte 183

Ich habe diese Lösung gesehen aquí mit regex .

import re
if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
# is True

Es funktioniert gut mit Akzenten

In [42]: if re.search("ê","ê", re.IGNORECASE):
....:        print(1)
....:
1

Es funktioniert jedoch nicht mit Unicode-Zeichen ohne Berücksichtigung der Groß- und Kleinschreibung. Vielen Dank, @Rhymoid, dass Sie mich darauf hingewiesen haben, denn ich dachte, dass es das genaue Symbol braucht, damit die Groß- und Kleinschreibung stimmt. Die Ausgabe ist wie folgt:

In [36]: "ß".lower()
Out[36]: 'ß'
In [37]: "ß".upper()
Out[37]: 'SS'
In [38]: "ß".upper().lower()
Out[38]: 'ss'
In [39]: if re.search("ß","ßß", re.IGNORECASE):
....:        print(1)
....:
1
In [40]: if re.search("SS","ßß", re.IGNORECASE):
....:        print(1)
....:
In [41]: if re.search("ß","SS", re.IGNORECASE):
....:        print(1)
....:

7 Stimmen

Die Tatsache, dass ß wird nicht gefunden innerhalb SS bei der Suche ohne Berücksichtigung der Groß- und Kleinschreibung ist ein Beweis dafür, dass sie Funktioniert nicht Arbeit mit Unicode-Zeichen überhaupt .

4voto

Andru Luvisi Punkte 23151

Üblicherweise werden die Zeichenketten für Suchvorgänge und Vergleiche in Großbuchstaben oder Kleinbuchstaben geschrieben. Zum Beispiel:

>>> "hello".upper() == "HELLO".upper()
True
>>>

2voto

Camilo Díaz Repka Punkte 4807

Wie wäre es, wenn Sie zuerst in Kleinbuchstaben konvertieren? Sie können Folgendes verwenden string.lower() .

5 Stimmen

Sie können ihre Karten in Kleinbuchstaben nicht vergleichen: y nicht gleichwertig testen würde, aber sollte.

0voto

mpriya Punkte 613

Sie können erwähnen case=False in der Funktion str.enthält()

data['Column_name'].str.contains('abcd', case=False)

0voto

zackakshay Punkte 41
def search_specificword(key, stng):
    key = key.lower()
    stng = stng.lower()
    flag_present = False
    if stng.startswith(key+" "):
        flag_present = True
    symb = [',','.']
    for i in symb:
        if stng.find(" "+key+i) != -1:
            flag_present = True
    if key == stng:
        flag_present = True
    if stng.endswith(" "+key):
        flag_present = True
    if stng.find(" "+key+" ") != -1:
        flag_present = True
    print(flag_present)
    return flag_present

Ausgabe: search_specificword("Erschwinglicher Wohnraum", "zum Kern des erschwinglichen Wohnraums in Europa") Falsch

search_specificword("Erschwinglicher Wohnraum", "zum Kern von erschwinglichem Wohnraum, in Europa") Wahr

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X