Avatar billede dank Nybegynder
25. september 2005 - 14:08 Der er 2 kommentarer

regexp, mange matches på mange linier

Jeg har f.eks.

$var = "navn: sdfsdf
navn: sdfwer
sdfsdf
sdfsdf
sdfsdf
navn: trert
";

Min kode ser således ud

$navn = $var =~ m/navn: (.*)/;


Men hvordan hiver jeg det ud, således at jeg får alle dem der matcher i $var

Tak på forhånd.
Avatar billede erikjacobsen Ekspert
25. september 2005 - 15:39 #1
Ja, du kan jo altid gøre sådan her (har du ikke en gang før spurgt om ca. dette - eller var det en anden??)

$var = "navn: sdfsdf
navn: sdfwer
sdfsdf
sdfsdf
sdfsdf
navn: trert
";

while ($var =~ m/navn: (.*)/g) {
  push(@navn,$1);
}

print join('-',@navn);
Avatar billede ranko Nybegynder
11. juni 2006 - 20:11 #2
Eller sådan her:

$var = "navn: sdfsdf
navn: sdfwer
sdfsdf
sdfsdf
sdfsdf
navn: trert
";

# denne matcher uanset om "navn:" står flere gange på den enkelte linje
@navn = $var =~ m/navn: (.*)/g;

# denne matcher kun de linjer som faktisk starter med "navn:"
# @navn = $var =~ m/^navn: (.*)/mg;
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