Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    regexp: ricerca stringhe incapsulate

    Ciao a tutti,
    data una frase, devo cercare il contenuto di eventuali parentesi tonde.
    La difficoltà sta nel fatto che dentro le tonde possono esserci altre tonde (che non devono essere considerate) e nella stessa frase possono esserci più parentesi.

    Es:

    Codice PHP:
    $frase 'Nel mezzo del cammin (di nostra vita) mi ritrovai per una selva oscura che (la diritta (via) era smarrita). Ahi quanto a dir...';

    preg_match_all('/(\(.*?\))/',$frase,$matches);
    print_r($matches); 
    Il codice sopra riportato mi trova
    codice:
    (di nostra vita)
    (la diritta (via)
    che non voglio. Io vorrei
    codice:
    (di nostra vita)
    (la diritta (via) era smarrita)
    Possibilmente con una sola regexp.

    E' possibile?

  2. #2
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,025
    Ho provato esguire il tuo codice , ma mi stampa gli array di ogni singolo carattere.
    In totale 254 array.
    Prova a postare meglio il codice.

  3. #3
    Scusa, il forum elimina i backslashes in automatico....

    Codice PHP:
    $frase 'Nel mezzo del cammin (di nostra vita) mi ritrovai per una selva oscura che (la diritta (via) era smarrita). Ahi quanto a dir...';

    preg_match_all('/(\\\(.*?\\\))/',$frase,$matches);
    print_r($matches); 

  4. #4
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,025
    Ho fatto questo, vedi se ti può essere di aiuto:
    codice:
    $frase = 'Nel mezzo del cammin (di nostra vita) mi ritrovai 
    per una selva oscura che (la diritta (via) era smarrita). 
    Ahi quanto a dir...';
    
    preg_match_all('/(\(.*?\)[a-z- ]+\))/',$frase,$matches);
    print_r($matches);
    echo "stampa il contenuto di tutta la parentesi dove contiene altre 
    parentesi";
    
    
    echo "
    ";
    preg_match_all('/(\([a-z0-9_.]+?\))/',$frase,$matches2); 
    print_r($matches2);
    echo "stampa quello che c'è nella parentesi interna";

  5. #5
    uhm no perché non prende

    codice:
    (di nostra vita)
    e prende (via) che invece non voglio.

    E poi vorrei, se fosse possibile, prenderla con una sola regexp.

    In pratica una istruzione che ignori le parentesi dentro le parentesi (prenda quindi solo quelle di primo livello, riconoscendo però quale sia la sua parentesi chiusa di riferimento).

    Se è possibile. Altrimenti mi arrangio in altro modo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.