|  | 		    
					
        
         
          
         
	
          | |  | Problemer med ereg() Fra : HellFish
 | 
 Dato :  07-11-01 13:13
 | 
 |  | Hej
 
 Er der en der kan se hvad der er galt med føglende stump kode, jeg sys ikke
 det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
 ind i den sidste if.
 
 if ($kvm)
 {
 $lenkvm=strlen($kvm);
 if (!ereg("([0-9]{$lenkvm})", $kvm))
 {
 //Gør nøget
 exit;
 }
 }
 
 ----
 HellFish
 
 
 |  |  | 
  Kim Emax - ayianapa.~ (07-11-2001) 
 
	
          | |  | Kommentar Fra : Kim Emax - ayianapa.~
 | 
 Dato :  07-11-01 14:13
 | 
 |  | 
 
            "HellFish" <hellfish@sol.dk> skrev
 > Er der en der kan se hvad der er galt med føglende stump kode, jeg sys
 ikke
 > det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
 > ind i den sidste if.
 >
 > if ($kvm)
 > {
 > $lenkvm=strlen($kvm);
 > if (!ereg("([0-9]{$lenkvm})", $kvm))
 hvad tror du "{" gør i regulære udtryk?
 og hvad vil du have den matcher? pt matcher den et tal efterfulgt af
 {$lenkvm}, er det det du vil?
 og har du noget at bruge det matchede udtryk til bagefter? ellers fjern (),
 så der er mindre, der forvirrer dig.
 --
 Take Care
 Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk Køb din vin online på http://www.gmvin.dk, Danmarks mest avancerede VinWebShop
            
             |  |  | 
  Peter Brodersen (07-11-2001) 
 
	
          | |  | Kommentar Fra : Peter Brodersen
 | 
 Dato :  07-11-01 15:04
 | 
 |  | On Wed, 7 Nov 2001 14:13:02 +0100, "Kim Emax - ayianapa.dk"
 <newsgroup@sletdette-ayianapa.dk> wrote:
 
 >og hvad vil du have den matcher? pt matcher den et tal efterfulgt af
 >{$lenkvm}, er det det du vil?
 
 Normalt burde det ikke være et problem, da dette er en normal måde at
 escape variabler på, fx:
 
 <?
 $person[1]['navn'] = "Peter Brodersen";
 print "Jeg hedder {$person[1]['navn']}";
 // outputter:  Jeg hedder Peter Brodersen
 ?>
 
 Her bliver variablen i {...} altså interpoleret, før noget andet sker.
 
 Det samme er tilfældet i hans eksempel. Eller som et eksempel
 herunder:
 
 <?
 $navn = "Peter Brodersen";
 $regexp[1]['efternavn'] = "r[oy][a-f]+rs";
 
 if (ereg("ter[[:space:]][Bb]{$regexp[1]['efternavn']}en",$navn)) {
 print "MATCHER";
 } else {
 print "MATCHER IKKE";
 }
 ?>
 
 Her bliver match-string'en altså til
 "ter[[:space:]][Bb]r[oy][a-f]+rs". Og i den string er der ikke noget
 {} tilbage, som regex-engine'n bekymrer sig om.
 
 --
 - Peter Brodersen
 
 
 |  |  | 
   Peter Brodersen (07-11-2001) 
 
	
          | |  | Kommentar Fra : Peter Brodersen
 | 
 Dato :  07-11-01 15:45
 | 
 |  | On Wed, 07 Nov 2001 15:03:37 +0100, Peter Brodersen
 <professionel@nerd.dk> wrote:
 
 >Og i den string er der ikke noget
 >{} tilbage, som regex-engine'n bekymrer sig om.
 
 .... hvilket selvfølgelig også er problemet i det oprindelige indlæg.
 {} er ganske enkelt ikke tilbage i det endelige udtryk, i modsætning
 til hvad, der ønskes.
 
 --
 - Peter Brodersen
 
 
 |  |  | 
  Andreas Kleist Svend~ (07-11-2001) 
 
	
          | |  | Kommentar Fra : Andreas Kleist Svend~
 | 
 Dato :  07-11-01 14:31
 | 
 |  | On 07 Nov 2001 12:13:03 GMT
 HellFish <hellfish@sol.dk> wrote:
 
 > Er der en der kan se hvad der er galt med føglende stump kode, jeg sys ikke
 > det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
 > ind i den sidste if.
 
 Det ville gøre det en hel del lettere at hjælpe hvis du fortalte hvad det er du prøver at matche.
 
 --
 mvh Andreas
 "Jeg har også opgraderet til Linux"
 
 
 |  |  | 
  HellFish (07-11-2001) 
 
	
          | |  | Kommentar Fra : HellFish
 | 
 Dato :  07-11-01 15:20
 | 
 |  | Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
 news:20011107143127.49076952.usenetnospam@nau.dk:
 
 > Det ville gøre det en hel del lettere at hjælpe hvis du fortalte hvad
 > det er du prøver at matche.
 >
 Meningen er at den skulle tage et tal fra en form, tallet kan være på
 forskellige længde. Det der så skulle gøres er at tjekke at tallet kun
 indeholder tal alt efter hvir mange cifre taller er langt.
 
 ----
 HellFish
 
 
 |  |  | 
  Anders Johannsen (07-11-2001) 
 
	
          | |  | Kommentar Fra : Anders Johannsen
 | 
 Dato :  07-11-01 15:16
 | 
 |  | > if ($kvm)
 > {
 > $lenkvm=strlen($kvm);
 > if (!ereg("([0-9]{$lenkvm})", $kvm))
 
 Hvis du ønsker at se, om strengen udelukkende består af tal fra 0-9 kan flg.
 udtryk med fordel anvendes:
 
 "^[0-9]+$"
 
 /A
 
 
 
 
 |  |  | 
  Dennis Iversen (07-11-2001) 
 
	
          | |  | Kommentar Fra : Dennis Iversen
 | 
 Dato :  07-11-01 15:15
 | 
 |  | HellFish wrote:
 >
 > Hej
 >
 > Er der en der kan se hvad der er galt med føglende stump kode, jeg sys ikke
 > det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
 > ind i den sidste if.
 >
 
 prøv med "([0-9]{{$lenkvm}})" istedet for.
 {} har særlig betydning i forhold til variabler,
 hvorved {} slettes ved din metode og jeg regner med
 at du vil måle længden af din variable vha netop {}.
 
 ved $kvm=6
 bliver dit udtryk =
 "([0-9]6)"
 
 iøvrigt hopper den derfor heller ikke ind i løkken
 ved udtryk som 123 og 1234 og 12345 og 123456
 
 ved min metode bliver det istedet for
 "([0-9]{6})" hvilket jeg regner med, er det, du forsøger.
 
 - dennis iversen
 
 
 |  |  | 
  HellFish (07-11-2001) 
 
	
          | |  | Kommentar Fra : HellFish
 | 
 Dato :  07-11-01 21:13
 | 
 |  | 
 "Dennis Iversen" <dbi@mail1.stofanet.dk> skrev i en meddelelse
 news:3BE941E9.72F11CC8@mail1.stofanet.dk...
 
 > prøv med "([0-9]{{$lenkvm}})" istedet for.
 > {} har særlig betydning i forhold til variabler,
 > hvorved {} slettes ved din metode og jeg regner med
 > at du vil måle længden af din variable vha netop {}.
 >
 > ved $kvm=6
 > bliver dit udtryk =
 > "([0-9]6)"
 >
 > iøvrigt hopper den derfor heller ikke ind i løkken
 > ved udtryk som 123 og 1234 og 12345 og 123456
 >
 > ved min metode bliver det istedet for
 > "([0-9]{6})" hvilket jeg regner med, er det, du forsøger.
 >
 > - dennis iversen
 
 Tusind tak, det var jo lige det jeg skulle bruge :)
 
 ----
 HellFish
 
 
 
 
 |  |  | 
 |  |