Ich habe viele Fragen gelesen, um die Antwort zu finden, und es tut mir leid, wenn ich es verpasst habe.
Angenommen, ich habe einen Text, der nur ein neues Zeilenzeichen enthält.
text ='\n'
Python Warum versteht regulärer Ausdruck n ohne Präfix
Da Regular Expression den umgekehrten Schrägstrich verwenden (‚\‘) eine besondere Bedeutung Zeichen wie Python zu entkommen, würden wir durch die Verwendung rohen String-Notation nur die neue Linie Charakter passen wie diese answer vorgeschlagen. (Bitte korrigieren Sie mich, wenn ich falsch liege)
So würden wir regex = re.compile(r'\n')
tun, und der Regex-Parser könnte einen umgekehrten Schrägstrich und ein Zeichen 'n' lesen und es als neues Zeilenzeichen interpretieren.
Meine Frage ist warum funktioniert
regex = re.compile('\n')
auch zu?
Ich versuchte regex.match(text)
und das Ergebnis ist zu tun <_sre.SRE_Match object; span=(0, 1), match='\n'>
, die gleich mit roher String-Notation ist.
Liegt das an dem in here geschriebenen Dokument? die sagt:
meisten Standard Fluchten von Python Stringliterale unterstützt werden auch durch den regulären Ausdruck Parser akzeptiert: \ A \ b \ f \ n \ r \ t \ v \ x \\
Konnte jemand im Detail erklären? Vielen Dank.
Ich denke, Ihre Frage ist eine Antwort, 2-in-1. Die Regex-Engine ist tatsächlich in der Lage, nach einer wörtlichen Newline zu suchen. –
Die Zeichenfolge, die durch das Literal "\ n" erzeugt wird, enthält keinen umgekehrten Schrägstrich. Es enthält ein Zeilenumbruchzeichen. Ein Zeilenumbruchzeichen hat keine spezielle Regex-Bedeutung. – khelwood
@ WiktorStribiżew Ich bin nur verwirrt, wie es funktioniert .... so erwarte ich eine genauere Erklärung – Le0