Visualizzazione dei risultati da 1 a 5 su 5

Discussione: espressioni regolari

  1. #1

    espressioni regolari

    spero possiate aiutarmi ad uscirne fuori
    codice:
    "'<pippo[^>]*>.*?</pippo>'si"
    quest'è l'espressione regolare a cui sono arrivato per estrarre un tag fittizzio "pippo"....
    la situazione è questa:
    <pippo param1="bla" param2="bla">blabla</pippo>

    in questo tag posso avere n parametri....

    ma a me servirebbe avere, per analizzarli, tutti i parametri presenti nel tag
    una situazione simile a questa per intenderci:
    array[0][0]="param1"
    array[0][1]="bla"
    array[1][0]="param2"
    array[1][1]="bla"

    mentre sono riuscito solo ad estrarre il tag
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  2. #2
    non ne sono sicuro, ma sembra che la funzione preg_match prenda come terzo parametro un array che conterra' le occorrenze trovate. potresti provare poi ad analizzare l'array

    esempio dal manuale

    preg_match("/^(http:\/\/)?([^\/]+)/i",
    "http://www.php.net/index.html", $matches);

    e poi ti ritroveresti riempito l'array $matches che potrai analizzare con un ciclo for.

    ciao
    ______________________________________

    Progresso Web.

  3. #3
    ciao caruccis,
    si uso preg_match_all per parsare il file
    ma non riesco a costruire l'espressione regolare per avere poi nell'array quello che mi serve (vedi sopra)

    codice:
    "'<modulo([^>]*)>(.*?)</modulo>'si"
    in questo modo ottengo il seguente array
    codice:
    Array
    (
        [0] => Array
            (
                [0] => <pippo param1="bla" param2="bla" param3="bla">questo non mi serve</pippo>
            )
        [1] => Array
            (
                [0] =>  param1="bla" param2="bla" param3="bla"
            )
        [2] => Array
            (
                [0] => questo non mi serve
            )
    )
    mentre io dovrei poter avere a disposizione separati "param1" e "bla", "param2" e "bla"...

    :master:
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  4. #4
    prova a vedere questo codice:
    codice:
    <?
    $preg="'<modulo([^>]*)>(.*?)</modulo>'si";
    $str="<modulo param1=\"primo\" param2=\"secondo\" param3=\"terzo\">blabla</modulo>";
    
    preg_match_all($preg,$str,$arr);
    
    $str2=$arr[1][0];
    echo "<pre>$str2</pre>";
    
    $preg2="#([a-z0-9]{1,})=\"([a-zA-z0-9]{1,})\"#Us";
    preg_match_all($preg2,$str2,$arr2);
    
    echo "<pre>";
    print_r($arr2);
    echo "</pre>";
    ?>
    in $arr2, per quanto riguarda questo esempio avrai:
    codice:
    Array
    (
        [0] => Array
            (
                [0] => param1="primo"
                [1] => param2="secondo"
                [2] => param3="terzo"
            )
    
        [1] => Array
            (
                [0] => param1
                [1] => param2
                [2] => param3
            )
    
        [2] => Array
            (
                [0] => primo
                [1] => secondo
                [2] => terzo
            )
    
    )

    magari era possibile farlo usando una sola preg, ma non so come




    vedi se questo ti può essere utile in qualche modo
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    grazie 1000 ...funge
    There are 10 types of people in the world: Those who understand binary, and those who don't.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.