Schrift
[thread]8881[/thread]

Suche mit regex

Leser: 1


<< >> 5 Einträge, 1 Seite
BlackPearl
 2007-03-27 19:36
#75454 #75454
User since
2007-03-23
5 Artikel
BenutzerIn
[default_avatar]
Hi,

Wie bekomme ich bei einer Suche im folgenden String
die 66 als Ergebnis?
Meine Regexp funktioniert nicht
Code: (dl )
1
2
'http:/00/ab1235/66/index.htm' =~ m|/([a-zA-Z_0-9]+?)/.+?htm|;
print $1;

Was mir fehlt wäre eine Suche von rechts nach links.
Oder muss man das mit der Option global und einer (foreach-)Schleife lösen?
bloonix
 2007-03-27 19:44
#75455 #75455
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
1
2
'http:/00/ab1235/66/index.htm' =~ m|/([a-zA-Z_0-9]+?)/[^/]+.htm[l]*$|;
print $1, "\n";
\n\n

<!--EDIT|opi|1175010309-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Taulmarill
 2007-03-27 19:56
#75456 #75456
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Du kannst im Prinzip von rechts nach links suchen, indem du entweder den String mit reverse() umdrehst (evtl. auch das Suchmuster spiegeln) oder das Ergebnis in eine Liste packst und das letzte element der Liste mit dem Index -1 hohlst.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2007-03-27 20:41
#75457 #75457
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Warum verwendest Du nicht split??
Code (perl): (dl )
1
2
my @info = split /\//, 'http:/00/ab1235/66/index.htm';
print $info[-2];
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/
BlackPearl
 2007-03-27 23:47
#75458 #75458
User since
2007-03-23
5 Artikel
BenutzerIn
[default_avatar]
Hi,

Danke für diese Lösungen!
Ich bin gerade erst mit einem Grundlagen Tutorial fertig geworden
und wollte deshalb zur Vertiefung u.a. die Suche mit Perl üben.
Die Funktion split war mir nur durch PHP bekannt.
Ich wusste noch nichts über reverse() und negative Indizes in Perl.
So habe ich wieder was dazu gelernt ^^
Die negativen Indizes scheinen praktisch zu sein :cool:
So sieht es auf jeden Fall hübscher aus als mit der Länge des Arrays zu rechnen.
<< >> 5 Einträge, 1 Seite



View all threads created 2007-03-27 19:36.