#url #language-agnostic
#url #не зависит от языка
Вопрос:
привет всем, у меня есть строковый текст, который может содержать URL-адреса (этот текст получен из текстовой области формы), и я хочу определить эти URL-адреса и окружить их тегом, чтобы они были представлены на html-странице в виде ссылок, каков наилучший способ сделать это?
Ответ №1:
используйте регулярные выражения.
(?i)b((?:[a-z][w-] :(?:/{1,3}|[a-z0-9%])|wwwd{0,3}[.]|[a-z0-9.-] [.][a-z]{2,4}/)(?:[^s()<>] |(([^s()<>] |(([^s()<>] )))*)) (?:(([^s()<>] |(([^s()<>] )))*)|[^s`!()[]{};:'".,<>?«»“”‘’]))
смотрите здесь из дополнительной информации
http://daringfireball.net/2010/07/improved_regex_for_matching_urls
public boolean isURL(String s){
return s.matches(" (?i)b((?:[a-z][w-] :(?:/{1,3}|[a-z0-9%])|wwwd{0,3}[.]|[a-z0-9.-] [.][a-z]{2,4}/)(?:[^s()<>] |(([^s()<>] |(([^s()<>] )))*)) (?:(([^s()<>] |(([^s()<>] )))*)|[^s`!()[]{};:'".,<>?«»“”‘’]))");
}
Комментарии:
1. на каком языке вы хотите это сделать?
2. в Java у меня есть строковый текст, в который я хочу поместить любой URL-адрес внутри тега a.
Ответ №2:
Это сложная проблема, в которой трудно разобраться правильно, главным образом потому, что в URL-адресах много допустимых символов, которые вы не часто видите в них.
http://www.codinghorror.com/blog/2008/10/the-problem-with-urls.html
Редактировать: The daringfireball.net link учитывает некоторые из этих факторов, но вы можете прочитать о компромиссах в сообщении в блоге.