Das ganze Missverständnis über Pythons rohe Saiten ist, dass die meisten Leute denken, dass Backslash (innerhalb einer rohen Saite) nur ein regulärer Charakter ist wie alle anderen. Es ist nicht. Der Schlüssel zum Verständnis ist die Tutorial-Sequenz dieses Pythons:
Wenn ein Präfix ' r ' oder ' R ' vorhanden ist, wird ein Zeichen nach einem Backslash unverändert in die Zeichenfolge aufgenommen, und alle Backslashes bleiben in der Zeichenfolge
Jedes Zeichen, das einem Backslash folgt, ist Teil der Rohzeichenfolge. Sobald der Parser eine unformatierte Zeichenfolge (keine Unicode-Zeichenfolge) eingibt und auf einen Backslash stößt, weiß er, dass zwei Zeichen vorhanden sind (ein Backslash und ein Zeichen folgen darauf).
Diesen Weg:
r'abc \ d ' umfasst a, b, c, \, d
r'abc \ 'd' umfasst a, b, c, \, ', d
r'abc \ '' umfasst a, b, c, \, '
und:
r'abc \ ' umfasst a, b, c, \', aber es gibt jetzt kein abschließendes Zitat.
Der letzte Fall zeigt, dass ein Parser laut Dokumentation jetzt kein schließendes Zitat finden kann, da das letzte Zitat, das Sie oben sehen, Teil der Zeichenfolge ist, dh, dass der Backslash hier nicht das letzte sein kann, da er das schließende Zeichen der Zeichenfolge "verschlingt".