2017-02-20 27 views
0

Извините, отправил это слишком рано.Быстрая и аккуратная проверка, что строка содержит только алфавит, независимо от набора символов?

Это реальный вопрос:

Я требую строки проверки, которая проверяет имя содержит только символы из реальных алфавитов - может быть любым, без ограничений к одному конкретному.

например. это может быть японский, русский или простой ASCII.

Я смотрел Java function to return if string contains illegal characters, что довольно хорошо, но подходит только для латинских языков.

Я посмотрел Validate a string contains only certain characters in java, который рассказывает о java.util.Scanner, но это не было предназначено для этой цели.

+0

Вы видели http://stackoverflow.com/questions/14636540/java-regular-expression-with-international-letters? –

+0

@JeremyGrand нет, очень интересно. Я искал тему «валидация», хотя я думаю, что даже с регулярным выражением в поисковых терминах, но не видел этого. – Adam

+0

Ну, этот ответ предоставляет регулярное выражение, которое использовалось для возврата true с именами из разных алфавитов. Мне кажется, что он отвечает именно вам, когда вы удаляете. и \ s из регулярного выражения. –

ответ

2

Как видно из https://stackoverflow.com/a/14662136/7573818, делает следующее решение вашего дела?

str.matches("^(?U)[\\p{Alpha}\\-']+") 
+0

Как я уже сказал в своем другом комментарии, я пропустил это, потому что я не искал так сильно «регулярное выражение», главным образом потому, что один из ответов, приведенных в первой ссылке, которую я цитировал, цитирует: «Если вы должны сделать это, by-character, regexp, вероятно, не очень хороший способ ", но это необоснованно. Не может быть никаких достойных альтернатив. – Adam

+0

Нет, комментарий «если вы должны сделать это символом по символу» был предназначен для шаблона Regex: если вам нужно уточнить каждый символ в шаблоне, это неправильный подход. Но если вы скомпилировали это простое Regex, это был бы лучший способ сделать это. Как вы можете проверить строку, отличную от проверки каждого символа? –