Während ich diese Antwort schrieb , musste ich mich ausschließlich mit Zeilenumbrüchen s
befassen, anstatt das Flag -flag zu verwenden ( dotall
- Punkt entspricht Zeilenumbrüchen).
Die Sites, die normalerweise zum Testen regulärer Ausdrücke verwendet werden, verhalten sich anders, wenn versucht wird, auf \n
oder übereinzustimmen \r\n
.
Ich bemerkte
Regex101 stimmt nur mit Zeilenumbrüchen überein
\n
( Beispiel - Löschen\r
und es stimmt überein)RegExr Spiele Zeilenumbrüche weder auf
\n
noch auf\r\n
und ich kann nicht etwas finden , um es einen Zeilenumbruch zu machen entspricht, mit Ausnahme desm
-Kennzeichen und\s
( Beispiel )Debuggex verhält sich noch anders:
In diesem Beispiel stimmt es nur mit überein\r\n
, während es
hier nur\n
mit denselben Flags und derselben Engine übereinstimmt
Ich bin mir der m
-flag (mehrzeilig - entspricht ^
dem Anfang und $
dem Ende einer Zeile) voll bewusst , aber manchmal ist dies keine Option. Gleiches \s
gilt für Tabulatoren und Leerzeichen.
Mein Gedanke, das Unicode-Zeilenumbruchzeichen ( \u0085
) zu verwenden, war nicht erfolgreich, also:
- Gibt es eine ausfallsichere Möglichkeit, die Übereinstimmung bei einem Zeilenumbruch (vorzugsweise unabhängig von der verwendeten Sprache) in einen regulären Ausdruck zu integrieren?
- Warum verhalten sich die oben genannten Websites anders (insbesondere Debuggex, das nur
\n
einmal und nur einmal übereinstimmt\r\n
)?
\r?\n
um beide \r\n
und \n
Zeilenabschlusssequenzen abzugleichen. Es funktioniert nicht für die alte \r
Mac-Syntax, aber diese ist heutzutage ziemlich selten.
[\r\n]+
- oder so etwas