Сопоставитель шаблонов Android с новыми доменами верхнего уровня

Я написал функцию, которая проверяет строку как веб-адрес. К сожалению, новые домены верхнего уровня, такие как ".koeln", ".cologne" и ".shop" и т. д., пока не поддерживаются при использовании Patterns.WEB_URL.

Кто-нибудь знает, как добавить эти домены или что нужно сделать, чтобы их обновить класс Patterns?

boolean validate(final String url){
    Pattern pattern = Patterns.WEB_URL;
    Matcher matcher = pattern.matcher(url);
    return matcher.matches();
}

Вот список всех (?) TLD, включая новые, о которых я говорю:

Список


person Barthy    schedule 27.03.2015    source источник


Ответы (1)


Кто-нибудь знает, как добавить эти домены

Напишите регулярное выражение. Все, что Patterns дает вам, — это готовый набор объектов регулярного выражения Pattern. Если они вам не нравятся, создайте свой собственный. Вы можете использовать существующую WEB_URL реализацию в качестве отправной точки.

Или используйте java.net.URL для анализа доменного имени (getHost()), затем разберите TLD и выполните поиск по списку интересующих вас TLD.

что нужно сделать, чтобы они обновили класс Patterns?

Я ожидаю, что "они" в конечном итоге откажутся от WEB_URL, как у них есть другие аспекты Patterns.

person CommonsWare    schedule 27.03.2015
comment
Спасибо за ваш ответ. Я уже думал о создании собственного шаблона. Знаете ли вы, кто, где и как я мог бы поднять тему, чтобы обновить Patterns.class? (Извините за «их», я, конечно, имел в виду очень умных людей, стоящих за всей ОС Android.) - person Barthy; 28.03.2015
comment
@BarthyB.: Вы, безусловно, можете заявить о проблеме. Имейте в виду, что даже если они исправят это завтра, пройдут годы, прежде чем большинство используемых Android-устройств получат его, и поэтому вам все равно придется что-то делать самостоятельно в качестве обходного пути. Вы можете проверить, не создал ли кто-нибудь еще код Java для обновленного сопоставителя TLD. - person CommonsWare; 28.03.2015