Avatar billede perh Juniormester
03. februar 2015 - 22:33 Der er 4 kommentarer og
1 løsning

match operator

Jeg har brug for at finde elementer, som er mindre end den match jeg søger:

har nu:
    if (($rec{'Nummer'}  =~ /2004_/ ) || ($rec{'Nummer'}  =~ /2005_/ ) || ($rec{'Nummer'}  =~ /2006_/ ) || ($rec{'Nummer'}  =~ /2007_/ ) || ($rec{'Nummer'}  =~ /2008_/ )  || ($rec{'Nummer'}  =~ /2009_/ )  || ($rec{'Nummer'}  =~ /2010_/ )  || ($rec{'Nummer'}  =~ /2011_/ )  || ($rec{'Nummer'}  =~ /2012_/ )  || ($rec{'Nummer'}  =~ /2013_/ )  || ($rec{'Nummer'}  =~ /2014_/ )  || ($rec{'Nummer'}  =~ /2015_/ )) {
        $url = "/$rec{'Nummer'}/index.php?"
        ;}
Det er jo helt vildt tungt.
'Nummer' starter med 'Aarstal_xyz' f. eks '2004_221'
Jeg skal bare finde ud af om 'Nummer' er mindre end 2004_
Det må kunne gøres enkelt og elegant?
Avatar billede erikjacobsen Ekspert
03. februar 2015 - 23:07 #1
Hvad med bare at matche tallet (4 cifre), og så bruge en if ?
Avatar billede perh Juniormester
03. februar 2015 - 23:19 #2
Jeg kunne måske bare trække de første 4 cifre ud af min
$rec{'Nummer'} og give det en variabel, som kan have en masse forskellige årstal som start,
og så teste, om variablen  er mindre end 2004 -
Hvis jeg vidste hvordan?
Avatar billede erikjacobsen Ekspert
03. februar 2015 - 23:24 #3
Ja. Man skal (normalt) bruge regulære udtryk til at finde strukturen, og så ellers bare bruge værdier som man plejer.

Så måske noget i retning af:

$x="1999-swdasda";

if ($x=~/^(\d\d\d\d)/) {
  $aar = $1;
  if ($aar<2000) {
    print "Long time ago\n";
  } else {
    print "That was a nice time\n";
  }
}
Avatar billede perh Juniormester
04. februar 2015 - 00:09 #4
Ja, det virker fint, mange tak.

Uheldigvis har jeg så inkonsekvent, at bruge 97, 98, 99 til indlæg fra 1997 osv, men så har jeg gjort dette, ikke særligt kønne, men virkende:

$x = $rec{'Nummer'};

if ($x =~ /^(\d\d)/) {
  $aar = $1;
  if (($aar < 100) && ($aar > 96)) {
  $husurl = "/$rec{'Nummer'}/index.html?";
  }
}

if ($x =~ /^(\d\d\d\d)/) {
  $aar = $1;
  if ($aar < 2004) {
  $husurl = "/$rec{'Nummer'}/index.html?";
  } else {
    $husurl = "/$rec{'Nummer'}/index.php?";
  }
}

Giv mig et svar, så du kan få dine point.
Avatar billede erikjacobsen Ekspert
04. februar 2015 - 00:14 #5
Jeg kan ikke lige gennemskue om det virker, men idéen er vist OK.

Ingen pont til mig, tak. Svar selv, og accepter eget svar,
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