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

    Domanda RegExp e pattern con ripetizioni

    Olaz a tutti,

    domanda sulle regexp:

    data una stringa di questo tipo:

    codice:
    pippo F,G_1,Decumeno_34 , ASD
    come faccio ad estrarre in un preg_match_all i singoli F e G e Decumento_34 e ASD?

    questa regexp:

    codice:
    /pippo[ ]+(((?>[a-zA-Z_0-9]+[, ]*)|(?R))*)/
    mi da come match:

    codice:
    [0] => Array
            (
                [0] => pippo F,G_1,Decumeno_34 , ASD
            )
    
        [1] => Array
            (
                [0] => F,G_1,Decumeno_34 , ASD
            )
    
        [2] => Array
            (
                [0] => ASD
            )
    che già non è male perchè io mi splitto [1][0] sulla virgola e li ottengo, solo che avrei preferito un risultato del tipo:
    codice:
    [0] => Array
            (
                [0] => pippo F,G_1,Decumeno_34 , ASD
            )
    
        [1] => Array
            (
                [0] => F,G_1,Decumeno_34 , ASD
            )
    
        [2] => Array
            (
                [0] => F
            )
    [3] => Array
            (
                [0] => G_1
            )
    [4] => Array
            (
                [0] => Decumento_34
            )
    [5] => Array
            (
                [0] => ASD
            )
    o analogo, ma non so se sia possibile con le regexp

    idee?

    thanks a lot
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    prova così
    codice:
    <?php 
    $str='pippo F,G_1,Decumeno_34 , ASD';
    
    preg_match_all('/(?P<elements>[^(pippo|,)].[^,]*)/i',$str,$res);
    
    echo "<pre>";
    print_r($res);
    ?>
    dovrebbe funzionare, anche se sicuramente si può fare di meglio!

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    No non mi da risultati...

    EDIT: scemo io... cmq non matcha correttamente, se io gli do un testo multilinea, mi prende tutto il testo di risultati...insomma, non va
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    vabbeh: quello che mi serve a me è un parser che dato un sorgente php, ti dica vita morte e miracoli di quel sorgente... ovvero

    classi presenti, chi estende chi, chi implementa chi, per ogni classe l'elenco dei metodi pubblici/privati/protetti l'elenco delle variabili il loro tipo la signature dei metodi etc etc etc

    oddio in realtà a me serve solo sapere il nome della classe però già che c'ero volevo fare una classettina che ti tirasse fuori tutto quello che ho scritto sopra. Stavo cercando se online ci fosse qualcosa del genere, ma sinceramente non ho trovato nulla

    la regular expression che sto facendo mi serve per trovare, data

    codice:
    class MyClass extends A implements B,C,Domodossola,E, F_1{
    che ho la classe MyClass, la classe A, MyClass estende A, le interfacce B,C,Domodossola,E e F_1, che la classe MyClass le implementa

    ora, ho trovato tutto, solo che per le interfacce appunto, essendo separate da virgole e spazi, avevo qualche difficoltà..

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    scusa l'ignoranza ma.. non sapevo che una classe potesse avere implementare diverse interfacce separate da virgola
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    e adesso che ci penso.. usare il tokenizer ??

    http://it.php.net/manual/en/book.tokenizer.php
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Ciao,
    darei anche un occhio a
    http://php.net/manual/en/book.reflection.php
    dal nome di una classe o dalla sua istanza be ci tiro fuori
    un po tutto metodi proprieta .....



    Ps
    per il dott

    http://php.net/manual/en/language.oop5.interfaces.php
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Originariamente inviato da whisher
    Ciao,
    darei anche un occhio a
    http://php.net/manual/en/book.reflection.php
    dal nome di una classe o dalla sua istanza be ci tiro fuori
    un po tutto metodi proprieta .....



    Ps
    per il dott

    http://php.net/manual/en/language.oop5.interfaces.php
    no non mi serve la reflection perchè non è applicabile al mio discorso... io voglio un parser


    EDIT: carino il tokenizer, ma non fa al caso... boh guarderò... vedo se trovo qulcosa tipo in java da riportare in php...già magari iniziare da qulalcosa che colora il codice potrebbe essere un punto di partenza
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    @whisher:

    thanks


    @santino:

    http://it.php.net/manual/en/book.tokenizer.php

    questo è quello che fa per te!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    Originariamente inviato da dottwatson
    @whisher:

    thanks


    @santino:

    http://it.php.net/manual/en/book.tokenizer.php

    questo è quello che fa per te!
    eh ma come? prova a mandargli in pasto il contenuto di un file con il sorgente di una classe php
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.