Schrift
[thread]8748[/thread]

aus string extrahieren



<< >> 5 Einträge, 1 Seite
Froschpopo
 2007-02-12 02:10
#74237 #74237
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
hab diesen code:

Code: (dl )
my @links = ($content =~ /foto=([0-9]+)&/g);


Kann man auf diese Weise oder ähnlich auch einen Hash befüllen?\n\n

<!--EDIT|Froschpopo|1171240110-->
GoodFella
 2007-02-12 07:17
#74238 #74238
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Bitte etwas mehr Info, was du machen möchtest. Ansonsten hier mal eine Quick n Dirty Lösung für ein Problem, dass aus sehr viel Eigeninterpretation deiner Beschreibung entstanden ist:
Code (perl): (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl -w
use strict;

my $content = 'foto1=8&foto2=40&';
my (%hash, $skip, $old);
map { $skip++; $hash{$old} = $_ unless($skip == 1); $skip = 0 if ($skip == 2); $old = $_; } ($content =~ /foto(.)=([0-9]+)&/g);
print "Foto '$_' hat den Wert '$hash{$_}'\n" for (keys(%hash));


ergibt:

Code: (dl )
1
2
Foto '1' hat den Wert '8'
Foto '2' hat den Wert '40'


hth\n\n

<!--EDIT|GoodFella|1171257481-->
renee
 2007-02-12 09:52
#74239 #74239
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Aus
Code: (dl )
foto(.)
würde ich noch
Code: (dl )
foto(\d+)
machen, sonst kannst fängst Du immer nur 1 Zeichen nach foto ein.
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
 2007-02-12 11:48
#74240 #74240
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Die Zuweisung der Werte zum Hash geht aber auch viel einfacher:
Code: (dl )
my %hash = $content =~ /foto(\d+)=([0-9]+)&/g;

Und selbst wenn man das in einer Schleife machen will, würde ich map im void context vermeiden und das lieber als for Schleife schreiben.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Froschpopo
 2007-02-12 11:51
#74241 #74241
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Von wegen Quick and Dirty... Das war wohl eher "long AND dirty" ;)
Und mehr deutlich als my @links = ($content =~ /foto=([0-9]+)&/g); geht doch garnicht? Das beschreibt doch genau das was ich machen will.

Mein Dank an Tailmarill :-)
<< >> 5 Einträge, 1 Seite



View all threads created 2007-02-12 02:10.