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

zeichen aus variablen löschen: zeichen aus variablen löschen



<< >> 6 Einträge, 1 Seite
parablast
 2004-03-22 12:30
#81182 #81182
User since
2004-03-22
2 Artikel
BenutzerIn
[default_avatar]
sicherlich für euch eine einfache sache:

1. problem:
ich habe z.b. eine variable ->
$datum1 = "4 04.07.2004";

jetzt möchte ich das in der variable $datum2 die "4 " herausgelöscht wird, also:
$datum2 = "04.07.2004";

anmerkung: es ist vorher unbekannt, welche zahl in $datum1 steht!

2. problem
ich möchte, das in der variable $datum3 nur der tag und der monat steht, also:
$datum3 = "04.07."

wie kann ich zeichen in einer variable passend herausschneiden???

greetz: D Le Wando
Taulmarill
 2004-03-22 12:53
#81183 #81183
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hm, man könnte das z.B. mit split machen:
Code: (dl )
$datum2 = (split " ", $datum1)[1]

Code: (dl )
$datum3 = join ".", (split /\./, $datum2)[0,1];$datum3 .= ".";

es gibt aber sicherlich noch elegantere methoden
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2004-03-22 13:02
#81184 #81184
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zu Problem 1:
Code: (dl )
1
2
3
$var = "4 03.02.2004";
$var =~ s/^\d\s//;
print $var;


Zu Problem 2:
Code: (dl )
1
2
$var = "22.03.2004";
my ($tag_und_monat) = $var =~ /((\d{2}\.){2})/;
\n\n

<!--EDIT|renee|1079953429-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Taulmarill
 2004-03-22 14:03
#81185 #81185
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
den ersten regex von renee sollte man evtl. etwas modifizieren:
Code: (dl )
s/^\d+\s+//

damit werden dann auch zahlen mit mehr als einer dezimalstelle und alle leerzeichen gelöscht.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
parablast
 2004-03-22 16:01
#81186 #81186
User since
2004-03-22
2 Artikel
BenutzerIn
[default_avatar]
:) danke für die schnelle hilfe! der code fluppt ...

greetz: D Le Wando
Strat
 2004-03-22 19:57
#81187 #81187
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
btw: meistens ist es sicherer, nur das zu behalten, was man behalten will, als das wegzuwerfen, was man nicht behalten will. wenn du nur das Datum behalten willst, ist das folgende wohl gegen Formataenderungen weniger anfaellig:

Code: (dl )
1
2
3
4
5
6
if ( $datum4 =~ /(\d\d?\.\d\d?\.\d+)/ ) {
$datum4 = $1;
}
else {
# kein Datum gefunden; mach was
}
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 6 Einträge, 1 Seite



View all threads created 2004-03-22 12:30.