Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6785[/thread]

leerzeichen und tabs entfernen

Leser: 1


<< >> 9 Einträge, 1 Seite
Rambo
 2005-03-12 21:09
#52606 #52606
User since
2003-08-14
803 Artikel
BenutzerIn

user image
hallo,
wie kann man aus einem string alle leerzeichen und tabulatoren entfernen?
für leerzeichen kann man ja das nehemen
Code: (dl )
my @string = split ' ', $string;

aber wie kann ich zusätzlich noch alle tabs raus nehmen?

danke
fürti rambo
esskar
 2005-03-12 21:33
#52607 #52607
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
damit entfernst du sie ja nicht, sondern splittest an Leerzeichen
Code: (dl )
$string =~ s!\s!!g;
\n\n

<!--EDIT|esskar|1110657034-->
betterworld
 2005-03-12 21:46
#52608 #52608
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Wobei \s ja auch noch auf Zeilenumbrueche matcht.. nur fuer Leerzeichen und Tabulatoren:
Code: (dl )
$string =~ s/[ \t]//g;

oder
Code: (dl )
$string =~ tr/ \t//d;


Btw, bei esskar ist das "my" zu viel.
esskar
 2005-03-12 21:51
#52609 #52609
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=betterworld,12.03.2005, 20:46]Btw, bei esskar ist das "my" zu viel.[/quote]
liegt wohl dran, dass das bei mir schon in fleisch und blut übergegangen ist vor ein "$" immer ein "my " zu schreiben :)
jan
 2005-03-12 21:53
#52610 #52610
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
gm als mod sollte reichen, um \s das matchen auf zeilenumbrüche abzugewöhnen...
pq
 2005-03-13 14:37
#52611 #52611
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
jan: wie kommst du denn darauf?\n\n

<!--EDIT|pq|1110717509-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pKai
 2005-03-13 17:11
#52612 #52612
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Quote
m Treat string as multiple lines.
s Treat string as single line.

beides bezieht sich zwar "irgendwie" auf die Verarbeitung von "\n", aber dass die das so teuflisch gegensätzlich formuliert haben...
Jedenfalls habe ich schon häufiger Leute gesehen, die davon auf den falschen Pfad gelockt wurden.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $x = qq(1st line\n2nd line\n3rd line\n);

(my $y = $x) =~ s/^\d/_/g;    # useless use of /g
print qq("$y");    # output:"_st line\n2nd line\n3rd line\n" *)

($y = $x) =~ s/^\d/_/mg;
print qq("$y");    # output:"_st line\n_nd line\n_rd line\n"
($y = $x) =~ s/.\d/_/sg;
print qq("$y");    # output:"1st line_nd line_rd line\n"

($y = $x) =~ s/.\d/_/smg;    # useless use of /m
print qq("$y");    # output:"1st line_nd line_rd line\n"
*) \n innerhalb des "output" oben ist ein newline und nicht literal zu lesen.

Edit: überflüssige "my" entfernt. :laugh:
Edit2: Beim Edit vom Board als newline interpretierte \n wieder gerichtet
Edit3: Sehr verwirrend, wie das Board \n innerhalb des perl-tag beim edit zum newline konvertiert. ???
Edit4: offenbar wird \n innerhalb von "perl" (aber nur beim edit?) konvertiert. Fubar?
Edit5: 3.+4. Bsp-s/// angepasst: /s ist kein mod für \s :blush:\n\n

<!--EDIT|pKai|1110729631-->
I sense a soul in search of answers.
pq
 2005-03-13 17:24
#52613 #52613
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pKai,13.03.2005, 16:11]
Quote
m   Treat string as multiple lines.
s   Treat string as single line.

beides bezieht sich zwar "irgendwie" auf die Verarbeitung von "\n", aber dass die das so teuflisch gegensätzlich formuliert haben...[/quote]
ok, es ist nicht trivial.

/s bewirkt, dass der punkt auch auf \n matcht.

/m bewirkt, dass ^ ( $ ) nicht auf den anfang (das ende) des
strings matcht, sondern den anfang (das ende) einer 'zeile' im string.

jedenfalls hat /m keine auswirkung auf das verhalten von \s
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
jan
 2005-03-13 17:25
#52614 #52614
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
uhm, ja, pq, gute frage. im grunde genau so, wie pKai es beschrieb, ich habe /m immer quasi als split und dann regexp gesehen. wäre mir sicher mal aufgefallen, wenn ich es mal öfter benutzte. shame on me :(
<< >> 9 Einträge, 1 Seite



View all threads created 2005-03-12 21:09.