Для этого можно использовать String#matches()
с размером regex. Латинские символы покрыты \w
.
Так что это нужно сделать:
boolean valid = input.matches("\\w+");
Это, кстати, также охватывает цифры и подчеркивание _
. Не уверен, что это вредит. Иначе вы можете просто использовать [A-Za-z]+
.
Если вы хотите также убрать diacritical characters (ä, é, ò и т. Д., Это определение также латинских символов), то вам необходимо сначала нормализовать их и избавиться от диакритических меток перед сопоставлением, просто потому что нет (задокументировано) regex, который охватывает диакритические знаки.
String clean = Normalizer.normalize(input, Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
boolean valid = clean.matches("\\w+");
Update: есть недокументированная регулярное выражение в Java, которая охватывает диакритические, а также, \p{L}
.
boolean valid = input.matches("\\p{L}+");
Над работой на Java 1.6.
Есть английские символы?!?! Я думал, что символы на английском языке взяты из латинского алфавита. –
хорошо, если он означает символы ascii, тогда я бы назвал это английскими персонажами .. или американскими. –