
Dieser Artikel-Befehlszeilenvergleiche in Python.
- Genaue Übereinstimmung (Gleichheitsvergleich):
==, !=
- Teilübereinstimmung:
in, not in
- Vorwärts-/Rückwärtsübereinstimmung:
startswith(), endswith()
- Bestellvergleich:
<, <=, >, >=
- Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung:
upper(), lower()
- Regex:
re.search(), re.fullmatch()
Genaue Übereinstimmung (Gleichheitsvergleich):==, !=
Wie bei Zahlen bestimmt der Operator ==, ob zwei Strings gleich sind. Wenn sie gleich sind, wird True zurückgegeben; wenn nicht, wird False zurückgegeben.
print('abc' == 'abc')
# True
print('abc' == 'xyz')
# False
Es wird zwischen Groß- und Kleinschreibung unterschieden, und dasselbe gilt für Vergleiche mit anderen Operatoren und Methoden. Vergleiche ohne Berücksichtigung der Groß-/Kleinschreibung werden später beschrieben.
print('abc' == 'ABC')
# False
!= gibt True zurück, wenn sie nicht gleich sind, und False, wenn sie gleich sind.
print('abc' != 'xyz')
# True
print('abc' != 'abc')
# False
Teilübereinstimmung:in, not in
Verwenden Sie den in-Operator für teilweise Übereinstimmungen, dh ob eine Zeichenfolge die andere Zeichenfolge enthält.
x in y gibt True zurück, wenn x in y enthalten ist (x ist ein Teilstring von y), und False, wenn dies nicht der Fall ist. Wenn jedes Zeichen von x diskret in y enthalten ist, wird False zurückgegeben.
print('bbb' in 'aaa-bbb-ccc')
# True
print('xxx' in 'aaa-bbb-ccc')
# False
print('abc' in 'aaa-bbb-ccc')
# False
not in gibt True zurück, wenn es nicht enthalten ist, und False, wenn es enthalten ist.
print('xxx' not in 'aaa-bbb-ccc')
# True
print('bbb' not in 'aaa-bbb-ccc')
# False
in und not in Werden auch used, um die Existenz von Elementen in Einer Liste zu prüfen. Nichts finden Sie im folgenden Artikel.
Vorwärts-/Rückwärtsübereinstimmung:startswith(), endswith()
SIE sterben Zeichenfolgenmethode „startswith()“ für den Vorwärtsabgleich, dh ob eine Zeichenfolge mit der angegebenen Zeichenfolge beginnt.
s = 'aaa-bbb-ccc'
print(s.startswith('aaa'))
# True
print(s.startswith('bbb'))
# False
Sie können auch ein Tupel von Buchstaben angeben.
True wird zurückgegeben, wenn die Zeichenfolge mit einem der Elemente des Tupels beginnt, und False wird zurückgegeben, wenn die Zeichenfolge mit keinem von ihnen beginnt. Beachten Sie, dass ein Fehler ausgelöst WIRD, WENN SIE EINE Liste anstelle eines Tupels angeben.
print(s.startswith(('aaa', 'bbb', 'ccc')))
# True
print(s.startswith(('xxx', 'yyy', 'zzz')))
# False
# print(s.startswith(['a', 'b', 'c']))
# TypeError: startswith first arg must be str or a tuple of str, not list
SIE sterben Zeichenfolgenmethode „endswith()“ für den Rückwärtsabgleich, dh ob Eine Zeichenfolge mit der angegebenen Zeichenfolge endet. Seine Verwendung ist die gleiche wie startwith().
print(s.endswith('ccc'))
# True
print(s.endswith('bbb'))
# False
print(s.endswith(('aaa', 'bbb', 'ccc')))
# True
Bestellvergleich:<, <=, >, >=
Sie können Zeichenfolgen mit den Operatoren <, <=, > und >= sowie Zahlen vergleichen. Zeichenfolgen werden in lexikalischer Reihenfolge zusammengefasst.
print('a' < 'b')
# True
print('aa' < 'ab')
# True
print('abc' < 'abcd')
# True
Die Reihenfolge der Zeichen WIRD in Unicode-Codepunkten erfasst.
Sie können den Unicode-Codepunkt eines Zeichens mit der eingebauten Funktion ord() erhalten.
print(ord('a'))
# 97
print(ord('b'))
# 98
Großbuchstaben haben kleinere Codepunkte als Kleinbuchstaben.
print('Z' < 'a')
# True
print(ord('Z'))
# 90
If Eine Liste von Strings mit der Listenmethode sort() oder der eingebauten Funktion sorted() sortiert WIRD, WIRD sterben Reihenfolge anhand auch von Unicode-Codepunkten bestimmt.
print(sorted(['aaa', 'abc', 'Abc', 'ABC']))
# ['ABC', 'Abc', 'aaa', 'abc']
Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung:upper(), lower()
Bei allen bisher beschriebenen Operatoren und Methoden wird zwischen Groß- und Kleinschreibung unterschieden.
Wenn Sie einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung benötigen, können Sie Upper() oder Lower() verwenden, um beide Buchstaben in Groß- oder Kleinbuchstaben umzuwandeln.
s1 = 'abc'
s2 = 'ABC'
print(s1 == s2)
# False
print(s1.lower() == s2.lower())
# True
Regex:re.search(), re.fullmatch()
SIE can regelmäßige Ausdrücke für flexiblere Vergleiche verwenden.
Forschung()
Use you re.search() for partiellen, Vorwärts- und Rückwärtsabgleich. Beachten Sie, dass re.match() auch für den Vorwärtsabgleich used Werden kann, aber hier nicht besprochen WIRD.
Für reguläre Ausdrucksmuster can verschiedene Metazeichen (Sonderzeichen) used Werden, aber es ist auch möglich, einen String einfach so anzugeben, wie er ist. Ein Übereinstimmungsobjekt wird zurückgegeben, wenn die Zeichenfolge enthalten ist, und None, wenn dies nicht der Fall ist. Match-Objekte werden immer als True ausgewertet.
import re
s = 'aaa-AAA-123'
print(re.search('aaa', s))
#
print(re.search('xxx', s))
# None
Das Metazeichen ^ entspricht dem Anfang der Zeichenfolge und $ entspricht dem Ende der Zeichenfolge.
print(re.search('^aaa', s))
#
print(re.search('^123', s))
# None
print(re.search('aaa$', s))
# None
print(re.search('123$', s))
#
Darüber hinaus stehen eine weitere Metazeichen und Sonderzeichenfolgen zur Verfügung.
Beispiel steht [AZ] für einen beliebigen Buchstaben des Großbuchstabenalphabets, und + bedeutet, dass das vorherige Muster einmal oder wiederholt wiederholt wird. Somit passt [AZ]+ zu jeder Teilzeichenfolge, die aus einem oder mehreren aufeinanderfolgenden alphabetischen Großbuchstaben besteht.
print(re.search('[A-Z]+', s))
#
Im following Artikel FINDEN SIE typische Beispiele für reguläre Ausdrucksmuster, z. B. platzhalterähnliches Muster.
re.fullmatch()
Verwenden Sie re.fullmatch(), um zu prüfen, ob der gesamte String mit einem regulären Ausdrucksmuster übereinstimmt oder nicht. Selbst wenn einige Teile übereinstimmen, wird None zurückgegeben, wenn einige Teile nicht übereinstimmen.
s = '012-3456-7890'
print(re.fullmatch(r'd{3}-d{4}-d{4}', s))
#
s = 'tel: 012-3456-7890'
print(re.fullmatch(r'd{3}-d{4}-d{4}', s))
# None
d steht für eine Zahl und {n} steht für n Wiederholungen. Da umgekehrte Schrägstriche in speziellen Sequenzen von regulären Ausdrücken wie d used Werden, ist es sinnvoll, unformatierte Buchstaben (r“ oder r““) zu verwenden, die umgekehrte Schrägstriche als Literalzeichen zu behandeln.
re.fullmatch() wurde in Python 3.4 hinzugefügt. In verschiedenen Versionen can SIE re.search() mit ^ und $ verwenden, um dasselbe zu tun. Sie können auch re.match() und $ verwenden, obwohl es hier nicht gezeigt wird.
s = '012-3456-7890'
print(re.search(r'^d{3}-d{4}-d{4}$', s))
#
s = 'tel: 012-3456-7890'
print(re.search('^d{3}-d{4}-d{4}$', s))
# None
re.IGNORECASE
Durch die Angabe von re.IGNORECASE als Argument-Flags von Funktionen wie re.search() und re.fullmatch() ist ein Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung möglich.
s = 'ABC'
print(re.search('abc', s))
# None
print(re.search('abc', s, re.IGNORECASE))
#