Quote Originariamente inviata da andbin Visualizza il messaggio
Con la ricerca delle parole con il loop del find() (invece che lo split), la regex semplicemente deve rappresentare la sequenza di caratteri che FANNO parte delle tue parole.

Quindi: o cerchi i caratteri che fanno parte delle parole, oppure "neghi" i caratteri che fanno parte dei separatori. A te la scelta, dipende da quanti sono.
Quote Originariamente inviata da Ansharja Visualizza il messaggio
Il codice che ho inserito lo fa già praticamente, cambia solo che tu vuoi togliere l'underscore dai caratteri che fanno il match. Quindi al posto di "\\w+", metti "[A-Za-z0-9]+".

Attento che il "+" è fondamentale, sta dicendo di cercare una o più occorrenze consecutive di lettere maiuscole o minuscole o numeri. Se non metti il più a quel punto sì, dividi per ogni lettera.


Se vuoi più informazioni sulle classi di caratteri e i simboli particolari puoi guardare la documentazione della classe Pattern, ovviamente per le espressioni regolari ("regex") trovi poi tutti i tutorial che vuoi.

Se vuoi includere anche parole divise dal trattino è un problema, puoi ovviamente aggiungere il trattino alla classe di cattura ma il matcher non può ovviamente decidere quali siano parole sensate e quali no, senza avere una sorta di "vocabolario" da consultare.

L'unica cosa che puoi stabilire è ad esempio che possa esserci solo un trattino all'interno di una parola e che sia diviso da lettere, o cose del genere.
grazie mille ancora una volta e spero sia l'ultima volta, dovrei aver risolto così. Grazie anche per aver linkato la documentazione gli darò un'occhiata al più presto