Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    espress.regolare x inizio e fine frase

    Ciao a tutti. Come al solito al momento di utilizzare le espressioni regolari cado nel panico.
    Volevo chiedervi come si fa, dato un testo lungo, a recuperare solo ad esempio le prime 5 parole, seguite dai 3 punti e infine dalle ultime 3 parole.

  2. #2
    Non sono molto pratica ma...

    questo da i primi 20 caratteri poi i 3 punti e alla fine gli ultimi caratteri.
    Non ho usato le exp reg, ma substr

    codice:
    $corto= substr( $testolungo , 0, 20 ).'...'.substr( $testolungo, -10   );
    prova questo e modificalo come ti viene meglio.

    A meno che non ti rispndano anche altri.
    io sono novellina :P
    Arianna Microchip
    FreePlayClub

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ti ringrazio ma anche io avevo già pensato a questa soluzione.
    Solo che così tronco le parole.
    Io invece vorrei fare in modo di mantenere tot parole intere sia all'inizio che alla fine.

  4. #4
    puoi fare uno split con lo spazio, che ti restituisce un array con le parole, poi con una count accedi ai primi tre e agli ultimi tre elementi e im mezzo ci metti i puntini...

    Manuel

    View my profile on LinkedIn
    Ubertini: amo solo te!

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ok.Ora ci provo.Nel caso mi rifaccio vivo.Grazie.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Grazie al suggerimento di manuel.s sono arrivato a questo punto

    Codice PHP:
    <?php
    $frase 
    "Ieri sono andato al cinema a vedere l'ultimo film di Quentin Tarantino";
    echo 
    $frase;
    echo 
    "
    "
    ;
    $separa explode(" ",$frase);
    //for ($i = 0; $i < count($separa); $i++)
    for ($i 0$i 3$i++)
    echo 
    $separa[$i]." "
    echo 
    "...";
    for (
    $i count($separa) - 3$i count($separa); $i++)
    echo 
    $separa[$i]." "
    ?>
    Più o meno ho raggiunto il mio scopo però ho notato che ovviamente,ad esempio le due parole separate dall'apostrofo vengono considerate come una.
    Credo che per ovviare a questo problema ci voglia per forza un'espressione regolare. Qualcuno è in grado di darmi una mano.
    Ad esempio vorrei che se la frase finisse con l'ultimo film queste venissero considerate come 3 parole e non due.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    up

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Non c'è proprio nessuno in grado di dirmi l'espr.regolare?
    Please.
    :master:

  10. #10
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Una cosa del genere dovrebbe andar bene, anche se ora non posso provarla

    Codice PHP:
    if (== preg_match('/^(([a-z]+){3}).*(([a-z]+){3})$/i'$testo$matches)) {
      echo 
    'Prime 3: '.$matches[1];
      echo 
    'Ultime 3: '.$matches[2];
    }
    else { 
      
    // il testo ha meno di 6 parole


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.