Thread Zeichenketten aus einer Datei lesen ->: und in einer anderen Datei zufügen (13 answers)
Opened by SimplyFred at 2007-04-26 17:10

murphy
 2007-04-27 16:58
#76270 #76270
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Nein, der m-Schalter für den regulären Ausdruck ist in diesem Fall überflüssig.

Es ist nämlich so: Das Muster \s passt stets auch auf Zeilenumbrüche. Die Verwendung des m-Schalters führt lediglich dazu, dass ^ und $ nicht mehr nur auf den Anfang bzw. das Ende der gesamten Zeichenkette, sondern auch auf die Position nach bzw. vor einem Zeilenumbruch passen.

Es ergibt sich also folgendes Verhalten:

* $line =~ s/\s*$//; löscht aus $line beliebig viele Whitespaces, inklusive Zeilenumbrüchen, die am Ende der Zeichenkette stehen.

* $line =~ s/\s*$//m; löscht aus $line beliebig viele Whitespaces, die am Ende der Zeichenkette oder[1] vor dem ersten Zeilenumbruch stehen.

Daher ist es in unserem Anwendungsfall egal, ob man den m-Schalter angibt, oder nicht. Eventuell ist es ohne den Schalter um ein paar Nanosekunden schneller ;-)


[1] hier ist ein exklusives "oder" gemeint.
When C++ is your hammer, every problem looks like your thumb.

View full thread Zeichenketten aus einer Datei lesen ->: und in einer anderen Datei zufügen