Salve,
Ho fatto un controllo tramite espressioni regolari per vedere se una stringa immessa è composta da parole (separate da ' o da uno spazio) che al loro interno non contengano lettere maiuscole (che possono essere inserite solo all'inizio di ogni parola).
Prima avevo scritto questo: #^(([A-Za-zàòèéùì']([àòèéùìa-z']*))('| )?)+$#
Ma non funzionava per ovvi motivi. Non riuscendo a trovare una soluzione semplice ho voluto provare ad aggiungere un carattere di fine stringa tra le possibili scelte, e stranamente funziona.
#^(([A-Za-zàòèéùì']([àòèéùìa-z']*))('| |$))+$#
Quello che mi chiedo è se è corretto avere un doppio carattere di fine stringa nel pattern oppure sono solo stato fortunato e ci sono altre stringhe per cui non funzionerebbe. la mia prima idea è stata che funziona perchè una volta letto $ interrompe il parsing e accetta la stringa anche se il pattern continua, però non so se sia un'interpretazione corretta
Già che ci siamo avete qualche consiglio su come migliorare quest'espressione regolare? Deve riconoscere solo stringe composte da lettere, lettere accentate, spazi e apostrofi