SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

SV: [sslug-perl] RegEx øv!



Uden at jeg kender så meget til PHP, vil jeg da gerne knytte et par
kommentarer...

Den første hat i ^[^&]$label=([^&]+)
-----------------^
betyder i PERL, fra starten af linien. Er det nødvendigt, hvis du er
ligeglad med starten af strengen?

Hvis vi skal beskrive det du søger efter i ord:
	hvad-som-helst, efterfulgt af
	$label=, efterfulgt af
	et-eller-flere tegn som ikke må være & [slut]

Det ville jeg skrive på denne måde i PERL:
	m/.*?$label=([^&]+)/i

m/	betyder søg.
.*?	betyder nul-eller-flere-af-hvilket-som-helst-tegn, dog på den
kortest mulige måde.
/i	betyder ignore-case.

Du kan nok også skrive:
	/^[^&]*$label=([^&]+)/

moa. mangler der bare en 'quantifier' efter den første [^&], nemlig '*'.



Venlige Hilsner

Søren Magnusson
teknisk sslug@sslug
www.Energistyrelsen.dk
Telefon 3395 4390


> -----Oprindelig meddelelse-----
> Fra: Hans Schou [mailto:sslug@sslug
> Sendt: 21. juli 1999 20:42
> Til: sslug@sslug
> Emne: [sslug-perl] RegEx øv!
> 
> 
> I mangel af en PHP-liste vil jeg lade dette spørgsmål gå ud over
> perl-hajerne.
> 
> Jeg skal parse en kommandolinie til webbrug. Jeg bruger syntaxen:
> URL?Identifier1=Value1&Identifier2=Value2&Identifier3=Value3
> 
> Til at finde de forskellige værdier, har jeg følgende regulære 
> udtryk hvor $label er identfier, som dog ikke virker:
>   "^[^&]$label=([^&]+)"
> (ovenstående er inspireret af kaptajn Haddock, Tin Tin)
> 
> Eksempler på inddata:
>  URL?id=1234
>  URL?stupid=nono&id=1234
>  URL?id=1234&stupid=nono
>  URL?stupid=nono&id=1234&stupid=nono
> 
> Hvad mangler jeg i starten af min reg-ex?
> 
> --- herunder hele min PHP-kode ---
> <html>
> <title>Argument Test</title>
> <h1>Argument Test</h1>
> <?php
> 
> function argget( $label, $reg ) {
>   global $argv;
>   if (ereg("^[^&]$label=([^&]+)", $argv[0], &$data))
>     list($foo, $reg) = $data;
> }
> 
>  if (count($argv)) {
>    argget( "id", &$id );
>    echo "id = $id\n";
>  } else {
>    echo "No arguments!\n";
>  }
> ?>
> </html>  
> -- 
> best regards
> +-------------------------------------------------------+
> ! Hans Schou,      Hamletsgade 4-201,     DK-2200 Kbh N !
> ! Fax : +45 3391 5310             Phone : +45 3586 1266 !
> ! mailto:sslug@sslug             http://www.schou.dk !
> +-------------------------------------------------------+
>    One Day - One World - One Operating System - Linux
>       12 September 1999 - http://www.linuxdemo.org
> 


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:52
Denne side vedligeholdes af MHonArc .