Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    64

    regex per splittare testo per frasi

    ciao a tutti,
    avrei bisogno di un aiuto per una regex.
    Devo splittare un testo lungo in frasi, quindi avevo pensato di utilizzare come caratteri per la divisione ". " cioè il punto seguito dallo spazio, ma in questo modo non sto considerando i "puntoeacapo" e cioè ".\n".
    Detto questo come posso creare una regex per splittare il testo in questi due casi ?
    Grazie in anticipo per l' aiuto.
    Ennio

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    64
    $testo=Frase1. frase1.1 e frase 1.2.
    frase2.
    frase3.
    frase4.
    print_r (split(" #\.\s*#s ",$testo));


    ottengo:
    Array ( [0] => Frase1. frase1.1 e frse 1.2. frase2. frase3. frase4. )


    mentre vorrei

    Array ( [0] => Frase1.[1] => frase1.1 e frse 1.2.[2] => frase2. [3] => frase3. [4] => frase4. )

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    64
    Ti ringrazio comunque ma curiosando e provando sembra che abbia risolto così
    "\.[[:space:]]" concordi?
    certo cosi metto in mezzo anche i caratteri di tabulazione ma non dovrebbe essere un problema nel mio caso.
    Grazie e Ciao.

  5. #5
    A me funziona perfettamente:

    Codice PHP:
    <pre>
    <?php 
    $testo
    ="Frase1. frase1.1 e frase 1.2.
    frase2.
    frase3.
    frase4."
    ;

    $results preg_split('#\\\.\\\s*#s'$testo);
    print_r($results);

    ?>
    </pre>

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    64
    Ti torna questo?
    Array ( [0] => Frase1 [1] => frase1 [2] => 1 e frse 1 [3] => 2 [4] => frase2 [5] => frase3 [6] => frase4 [7] => )

  7. #7
    Si, restituisce la stringa suddivisa per punti ed eventuali accapo/spazi successivi.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    64
    no infatti deve tornare la stringa divisi per punti (inteso come fine frase e cioè ". " ) e per puntoecapo(".\n"). Comunque come ti ho scritto prima funziona.
    Grazie per l' aiuto, e... CIAO.

  9. #9
    Codice PHP:
    <pre>
    <?php 
    $testo
    ="Frase1. frase1.1 e frase 1.2.
    frase2.
    frase3.
    frase4."
    ;

    $results preg_split('#\\\.\\\s+#s'$testo);
    print_r($results);

    ?>
    </pre>

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.