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

Alle Slashes aus Variable entfernen



<< >> 4 Einträge, 1 Seite
stb2050
 2005-11-09 12:22
#59916 #59916
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Ihr,

sagt mal... wie kann ich aus einer $variable = z.B. "abc/ddr/3ss\33../.../44\dsdfeDS\.." alle Slashes und Backslashes entfernen?

Wäre für einen Tipp bzw. eine Lösung sehr dankbar.

Liebe Grüße,
Steffen
Taulmarill
 2005-11-09 12:47
#59917 #59917
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
am besten mit dem tr/// operator, dieser wandelt ein zeichen in ein anderes um. wenn man dann noch ein "d" anhängt, werden zeichen, für die keine ersetzung angegeben ist, gelöscht. das würde dann etwa so aussehen:
Code: (dl )
$variable =~ tr/\///d;

da das aber ein bischen blöd aussieht, machen wir uns jetzt noch den umstand zunutze, dass man als trenner nach dem tr ein beliebiges zeichen nehmen kann.
Code: (dl )
$variable =~ tr~/~~d;


btw. der code ist ungetestet.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
stb2050
 2005-11-09 13:37
#59918 #59918
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hallo Taulmarill,

vielen Dank für die schnelle Antwort :-)

Mit deinem Code werden aber nur die / entfernt, oder sehe ich das falsch? d.h. wenn ich auch noch die \ entfernen möchte, müsste es so aussehen?

Code: (dl )
$variable =~ tr~/\~~d;


Liebe Grüße,
Steffen
Strat
 2005-11-09 13:56
#59919 #59919
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
da man den backslash bei der verwendung als backslash-zeichen immer escapen muss:
Code: (dl )
$variable =~ tr~/\\~~d;

sonst wuerdest du die zweite tilde escapen: deine loestung wuerde tr#/ \~# entsprechen, und das ergibt den fehler, dass ein trennzeichen (hier mal #) fehlt...

das ersetzt aber nur alle / und \ durch nichts. wenn du die behalten willst, dann drehe einfach alles um und schreibe:


Code: (dl )
$variable =~ tr~/\\~~cd;
\n\n

<!--EDIT|Strat|1131538278-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 4 Einträge, 1 Seite



View all threads created 2005-11-09 12:22.