Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [RegExp]Separare una stringa [qualcosa]

    ciao a tutti,
    ho un problema su cui sbatto ma non capiso..io ho una stringa

    //stringa
    $str=[confirm][pippo][ciccio][pluto];

    /*
    vorrei avere una matrice con i valori dentro le parentesi e ho fatto una regexp che per mi estrare le cosa non come vorrei
    */

    ereg("(\[+[a-z]+\])(\[+[a-z]+\])(\[+[a-z]+\])(\[+[a-z]+\])","[confirm][pippo][ciccio][pluto]",$g);

    stampa una matrice così
    ----------------
    0=>[confirm][pippo][ciccio][pluto]
    1=>[confirm]
    2=>[pippo]
    3=>[ciccio]
    4=>[pluto]
    ----------------

    vorrei prima di tutto eliminare il risultato nella [0] e poi avere gli altri senza più essere tra parentesi...ma come faccio con le regexp?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    magari è un po' macchiavellico, comunque te lo posto uguale :
    Codice PHP:
    $str="[confirm][pippo][ciccio][pluto]"
    $str str_replace("]","|",$str);
    $str str_replace("[","",$str);

    $str2 explode("|",$str);
    print_r($str2); 
    ciao

  3. #3
    codice:
    $str="[confirm][pippo][ciccio][pluto]";
    
    $str=preg_replace("/(\[)([a-z]*)(\])/","$2 ",$str);
    $arr=explode(" ",$str);
    print_r($arr);


    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

  4. #4
    tutte e due sono buone..preferisco con le regexp, perchè voglio impararle bene, ma sono vermanete difficili!!

    mi sfugge l'ultizzo di "$2 "..cosa mi significa?

  5. #5
    praticamente con il preg_replace tu gli vai a dire di sostituire il testo riconosciuto dalla preg con il secondo parametro della funzione...nell'esempio vedi che la preg è composta da 3 classi, che sono quelle racchiuse dalle tonde

    1: (\[)
    2: ([a-z]*)
    3: (\])

    ecco, con $2 indichi la seconda classe; volendo puoi usare anche \\2



    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    beh, quella va bene, ma prova questa
    codice:
    preg_replace("/\[([a-z]+)\]/e", "\$arr[] = \"$1\";", $testo);
    e ottieni in $arr tutti gli elementi desiderati..facile, no?

  7. #7
    Originariamente inviato da billo
    beh, quella va bene, ma prova questa
    codice:
    preg_replace("/\[([a-z]+)\]/e", "\$arr[] = \"$1\";", $testo);
    e ottieni in $arr tutti gli elementi desiderati..facile, no?
    fica 'sta storia che posso usare gli array anche nel secondo parametro

    non la sapevo! alla fine si salta un passaggio, ma un passaggio saltato è un passaggio guadagnato
    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    no, il fatto è che ho usato il modificatore e (eval) che si mette qui..
    codice:
    preg_replace("/\[([a-z]+)\]/e", "\$arr[] = \"$1\";", $testo);
    e quindi mi valuta il secondo parametro come codice php, figo no?

  9. #9
    per funzionare funziona, ma avevo appena capito come funzionava quella billo..e mò mi fuma la cervella VVoVe:

    meno male che aveva già chiarito cosa sia /e

  10. #10
    Originariamente inviato da billo
    no, il fatto è che ho usato il modificatore e (eval) che si mette qui..
    codice:
    preg_replace("/\[([a-z]+)\]/e", "\$arr[] = \"$1\";", $testo);
    e quindi mi valuta il secondo parametro come codice php, figo no?
    si si sto vedendo ora i modificatori di criterio su php.net perché non sapevo appunto il significato di \e e l'ho trovato

    ho imparato 2 cose in un colpo solo




    grazie
    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

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.