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

RegEx

Leser: 1


<< >> 4 Einträge, 1 Seite
LordChaos
 2005-06-29 16:21
#55823 #55823
User since
2005-05-04
8 Artikel
BenutzerIn
[default_avatar]
Hallo!

eine kurze ( fuer Experten wahrscheinlich in Sekunden loesbare... :-) ) Frage:
Folgende Zeile:

EXPRESS     liver ; colon ; small intestine ; other ; mixed ; bone

Wie komme ich ueber eine RegEx an die jeweilgen Orte (liver, colon etc)?
Jeder Ort soll folgendermasen in einem hash abgelegt werden:

EXPRESS_1 => liver


Vielen Dank,
Thomas\n\n

<!--EDIT|LordChaos|1120049021-->
dominicn
 2005-06-29 18:27
#55824 #55824
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Ich würde es wahrscheinlich nicht mit RegEx lösen sondern folgendermaßen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use Data::Dumper;
my $str = "EXPRESS     liver; colon; small intestine; other; mixed; bone";

my ($name, $werte) = split(/\s/, $str, 2);
my %zielhash = ();
my $count = 0;
foreach (split(/\;/, $werte)) {
   $_ =~ s/^\s+//g;
   $_ =~ s/\s+$//g;
   $zielhash{$name."_".++$count} = $_;
}

print Dumper(\%zielhash);
Strat
 2005-06-30 14:07
#55825 #55825
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=LordChaos,29.06.2005, 14:21]EXPRESS     liver ; colon ; small intestine ; other ; mixed ; bone[/quote]
vielleicht so?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my ($mode, @towns) = $string =~ 
 /^(EXPRESS) # oder was auch immer
 \s+       # ein oder mehrere leerzeichen
 (         # beginne zu speichern
   [^;]+;?) # speichere bis zum naechsten;
            # wenn es nicht gefunden wird, dann bis zum
            # ende des strings
 )+        # ende des speichern, wiederholen
 $
 /x;
my %hash = ();
if (scalar (@towns)) {
 for my $i (0..$#towns) {
   $hash{$mode . "_". $i+1} = $towns[$i];
 } # for
} # if

# ev noch leerzeichen am anfang und ende der arrayvalues rausschneiden\n\n

<!--EDIT|Strat|1120126140-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
LordChaos
 2005-06-30 16:29
#55826 #55826
User since
2005-05-04
8 Artikel
BenutzerIn
[default_avatar]
Ok, vielen Dank euch beiden, klappt sehr gut!

Schoenen Tag noch!

Thomas
<< >> 4 Einträge, 1 Seite



View all threads created 2005-06-29 16:21.