Abgleichen von Zeilenumbruchzeichen in R Regex
Obwohl reguläre Ausdrücke (kurz regex
) eine ziemlich universelle Methode zur Definition von Zeichenkettenmustern sind, können sich diese Muster auf verschiedenen Plattformen unterschiedlich verhalten, insbesondere wenn der regex auf Sonderzeichen wie Zeilenumbrüche abgestimmt werden soll. In diesem Artikel werden wir verschiedene Möglichkeiten zur Einbeziehung von Zeilenumbrüchen in reguläre Ausdrücke in R analysieren.
Zeilenumbruch-Sequenzen in verschiedenen Umgebungen
In Linux-Umgebungen ist das Muster \n
eine Übereinstimmung für eine Zeilenumbruchsequenz. Unter Windows hingegen passt der Zeilenumbruch auf \r\n
, und bei alten Macs auf \r
.
Wenn Sie einen regulären Ausdruck benötigen, der auf einer dieser Plattformen mit einer Zeilenumbruchsequenz übereinstimmt, könnten Sie das Muster \r?\n
verwenden, um sowohl auf die ZeilenabbruchZeichenkette \n
als auch auf \r\n
zu passen.
Mit dieser Option werden Linux- und Windows-Umgebungen abgedeckt, obwohl das Muster nicht richtig mit Zeilenumbrüchen in alten Macs übereinstimmen wird. Um auch alte Macs abzudecken, könnten Sie das Muster \r?\n|\r
verwenden, das auch mit \r
übereinstimmt. Eine korrektere Version dieses Musters würde lauten: (\r\n|\r|\n)
Regex mit Zeilenumbruch-Sequenzen testen
Viele Webseiten bieten die Möglichkeit, reguläre Ausdrücke zu testen. Die meisten von ihnen arbeiten wie Linux-Umgebungen und finden beim Testen des Musters \n
Übereinstimmungen auf Zeichenketten mit Zeilenvorschüben. Aber sie finden keine Übereinstimmung, wenn Sie das Muster \r\n
testen. Beispiele für diese Websites sind Regex101 und Regexr.
Andere Test-Websites könnten ein anderes Verhalten zeigen, so wie es bei verschiedenen Betriebsumgebungen vorkommt. Zum Beispiel arbeitet Regex Storm eher wie Windows-Plattformen und findet Übereinstimmungen zwischen Zeichenketten mit Zeilenumbrüchen und dem Muster \r\n
.