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

    Espressione regolare per eliminare da una frase le parole inferiori o uguali a due caratteri

    Salve a tutti,

    data una stringa di caratteri alfanumerici, es:

    a-casa-di-lucia-c-e-un-gatto-la-testa-bianca-e-la-coda-nera

    devo ottenere una nuova stringa senza i termini di lunghezza inferiore o uguale a due caratteri, quindi:
    casa-lucia-gatto-testa-bianca-coda-nera

    Se è più semplice potrei mettere gli SPAZI al posto dei trattini (-)

    Attendo vostro aiuto.

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    (\w\w+)

    \w <=> [A-Za-z0-9_]

    Se vuoi togliere l'underscore basta che sostituisci \w con [A-Za-z0-9]

    Alternativamente \w{3,}
    Ultima modifica di Scara95; 23-10-2014 a 11:16 Motivo: dimenticato una virgola
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Ma in ogni caso non ti basta fare uno split, filtrare la lista per x -> (lunghezza x) > 2 e fare un join?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Ciao Scara95, l'espressione che mi hai proposto non restituisce il riusltato corretto

  5. #5
    sembra che la soluzione sia la seguente:

    \b\w{1,2}\b

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    A dire il vero dipende da come ti approcci al problema. La mia seleziona tutte le parole più lunghe di 2 caratteri, la tua tutte le parole più corte di 3. Suppongo tu voglia fare un replace per la stringa vuote "". In tal caso è comunque scorretta perché otterresti
    -casa--lucia----gatto--testa-bianca---coda-nera

    Una possibile soluzione è la seguente:
    (\b\w{1,2}\-)|(\-\w{1,2}$)
    ovviamente globale.
    Che gestisce anche il caso dell'ultima parola di 2 caratteri.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.