Dieser ist ein bisschen schwierig, denke ich.Ignorieren Backslash-Zeichen in Python
wenn ich:
a = "fwd"
b = "\fwd"
wie kann ich ignorieren die "\"
so etwas wie
print(a in b)
kann auf True bewerten?
Dieser ist ein bisschen schwierig, denke ich.Ignorieren Backslash-Zeichen in Python
wenn ich:
a = "fwd"
b = "\fwd"
wie kann ich ignorieren die "\"
so etwas wie
print(a in b)
kann auf True bewerten?
Sie haben noch fwd
in b
. Sie haben wd
, vorausgegangen ist ASCII codepoint 0C, the FORM FEED character. Das ist der Wert, den Python angibt, wenn Sie in einem regulären String-Literal eine Escape-Sequenz verwenden.
Doppelte Backslash, wenn Sie eine rohe Stringliteral einen umgekehrten Schrägstrich oder verwenden Sie aufnehmen möchten:
b = '\\fwd'
b = r'\fwd'
Jetzt a in b
Werke:
>>> 'fwd' in '\\fwd'
True
>>> 'fwd' in r'\fwd'
True
Siehe String literals documentation:
Es sei denn, ein
'r'
oder'R'
Präfix ist vorhanden, Escape-Sequenz s in Strings werden nach Regeln ähnlich denen von Standard-C Die erkannten Escape-Sequenzen sind verwendet interpretiert:[...]
\f
ASCII Seitenvorschub (FF)
Eine Möglichkeit, es mit rohen Saiten tun:
>>> a = "fwd"
>>> b = "\fwd"
>>> a in b
False
>>> a = r"fwd"
>>> b = r"\fwd"
>>> a in b
True
Der relevante docs
Sie müssen "Escape" den umgekehrten Schrägstrich, wie in:
b = '\\fwd'
Ansonsten liest der einzelne Backslash + f als ASCII-Zeichen (ein Formfeed).
Hier ist ein Beispiel.
>>> a='fwd'
>>> b='\fwd'
>>> c='\\fwd'
>>> a in b
False
>>> a in c
True
Was tun Du meinst mit "Ignorieren"? – TigerhawkT3
@ TigerhawkT3 also b kann einfach "fwd" sein –
Es gibt keinen Backslash-Charakter in 'b'. Es gibt ein * -Form-Zeichen * in "b", das dort durch die Escape-Sequenz "\ f" gesetzt wird. –