Umbrüche herausfiltern
Christian Petzold
- perl
Ich habe eine Perlvariable $main in der einige Zeilen HTML-Code sind. Jetzt will ich alle Zeilenumbrüche aus der Variable löschen. kann mir jemand zeigen wie das geht???
Auch Dir ein fröhliches Hallo,
Ich habe eine Perlvariable $main in der einige Zeilen HTML-Code sind. Jetzt will ich alle Zeilenumbrüche aus der Variable löschen. kann mir jemand zeigen wie das geht???
perldoc perlre sagt dazu einiges.
$main =~ s/\015\012\015\012/ /g;
Ich ersetze hier durch ein Leerzeichen.
Cheatah
hi ho
$main =~ s/\015\012\015\012/ /g;
*gruebel* - muss es nicht
ist $main =~ s/(\015\012)\015\012/ /g; heissen?
und wo wir gerade dabei sind.... - ist
$main =~ s/(\015\012?)\012/ /g; eigentlich schneller?
cua
n.d.p.
Ich habe eine Perlvariable $main in der einige Zeilen HTML-Code sind. Jetzt will ich alle Zeilenumbrüche aus der Variable löschen. kann mir jemand zeigen wie das geht???
Hallo,
das Zauberwort heißt wie so oft bei Perl 'Regular Expressions'.
da gibts eine eingabute Funktionalität, welche mithilfe von eben diesen ein suchen und ersetzen realisiert.
Für Deinen Fall heißt das:
$main =~ s/\n//g;
'$main' is wohl klar.
was '=~' genau bedeutet steht in 'perlop' under 'Binding Operators'. hier nur der erste Satz:
'Binary ``=~'' binds a scalar expression to a pattern match.'
D.h. daß das Ersetzen auf '$main' angewandt wird.
Die syntax für 'Substitute' ist genau
s/regex_nach_der_gesucht_werden_soll/wodurch_es_ersetzt_werden_soll/modifier.
Wie's genau funktioniert Steht auch in 'perlop'
'\n' bedeutet wir suchen nach Zeilenumbrüchen. Es kann auch komplizierter sein, siehe unter 'perlre'.
Daß danach zwei slashes kommen, bedeute, daß anstelle jedes '\n' genau garnichts kommt.
das 'g' dahinter bedeute, daß _alle_ Zeilenumbrüche ersetz werden sollen. Genaueres findest Du auch unter 'perlop' Abschnitt 'Regexp Quote-Like Operators'.
Interessantes weiß auch SELFHtml zu berichten. 'tcgc.html' ist ein heißer Tip.
Bis dann,
Klaus