Avatar billede morten_f Nybegynder
10. december 2004 - 17:55 Der er 1 kommentar

perl pattern matching, :any

Jeg vil gerne finde _alle_ forekomster af en substring, som f.eks.:

my $str = "ahhh";
@matches =  $str =~ m:any/ah*/;    # returns "ahhh", "ahh", "ah", "a"

Kan man gøre det på en enkel måde i Perl 5? Jeg har prøvet at rode med noget lookahead (og selvfølgelig /g) men jeg kan ikke få det til at matche flere gange med samme startsted.
Avatar billede morten_f Nybegynder
11. december 2004 - 12:54 #1
Hov -det var vist ikke det bedste eksempel, jeg valgte. Hvis det kun er i slutningen, der er et variabelt antal matches, kan man jo bare vende strengen om, og så gøre sådan noget som:

while($reversedstr =~ /(?=(h*a))/g)

(Og så selvfølgelig vende resultatet om igen).
Det jeg mener er nok nærmere, hvis man ønsker at matche noget i stil med /a+h*a+/, så f.eks. strengen "aahhha" matcher "aha","aaha","ahha","aahha".
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester