2015-12-19 15 views
7

Voglio essere sicuro che una stringa contenga solo caratteri alfa (con caratteri speciali come "é", "è", "ç", "Ç", "ï", ecc. Ecc.).Java: String pattern: come specificare regex per tutti i caratteri alfa con caratteri speciali

ho fatto, ma con caratteri speciali restituisce false ...

if (myString.matches("^[a-zA-Z]+$")) { 
    return true; 
} 

Grazie ragazzi!

+0

Vuoi abbinare [solo lettere latine] (https://stackoverflow.com/questions/27707836/latin-letter-regular-expression-in-java) o lettere da tutti gli alfabeti? L'espressione '\ p {L}' corrisponde a decine di migliaia di caratteri di molti alfabeti. – Boann

risposta

7

È possibile utilizzare Unicode Category: \\p{L} o \\P{Letter} per abbinare qualsiasi tipo di lettera da qualsiasi lingua.

if (myString.matches("\\p{L}+")) { 
    return true; 
} 

BTW, String.matches cercare di far corrispondere intera stringa, quindi ^, $ ancore non sono necessari.

+0

falsetru, con il carattere dello spazio? – anthony

+0

@anthony, È possibile utilizzare la classe di caratteri insieme per soddisfare entrambi: '[\\ s \\ p {L}] +' – falsetru

Problemi correlati