Zeilenumbruch im regex
trulle
- perl
irgendwie kennt .+ keinen Zeilenumbruch.
Folgendes Beispiel:
/<(.+)>/
Das funktioniert aber nicht, wenn zwischen < und > ein Zeilenumbruch vorkommt.
Laut sämtlichen Tutorials steht . aber für ein beliebiges Zeichen!
Was hab ich übersehen?
irgendwie kennt .+ keinen Zeilenumbruch.
Was hab ich übersehen?
Den s-Modifier. Und bevor Du hier weitere Grundsatzfragen zu Regulären Ausdrücken in Perl stellst, schau Dir bitte perlre (Referenz zu RegExp in Perl), perlrequick (Schnelleinstieg in RegExp) und perlretut (umfangreiches Tutorial) an.
Siechfred
Moinsen!
In SELFHTML findet Du den Hinweis, das ein Punkt für ein beliebiges Zeichen steht - außer \n (also einem Zeilenvorschub).
Du könntest, je nach Aufgabe, das Flag s verwenden (um auch über Zeilenvorschübe hinaus zu arbeiten) oder etwas wie (.|\n)+ verwenden.
Alles klar?
Norbert
Hallo trulle!
Laut sämtlichen Tutorials steht . aber für
ein beliebiges Zeichen _außer_ dem Newline-Zeichen! (siehe auch Siechfreds Antwort und seinen Tipp mit dem Modifier s, bei welchem auch \n gematcht wird)
Moderativer Tipp: Probiere in Zukunft Deine Fragen in _einem Thread_ zu gruppieren, das ist schon der dritte Thread zu RegExps, den Du öffnest. Du kannst innerhelb eines bestehenden Threads das Thema ändern, um eine Frage zu ergänzen.
Viele Grüße aus Frankfurt/Main,
Patrick