Как получить имя домена из ссылки в Таблицах

Автор ,,,, 16 января 2015, 12:10

0 Пользователи и 1 гость просматривают эту тему.

,,,

Как получить имя домена из ссылки в Таблицах Google
http://gdriveru.blogspot.ru/2015/01/REGEXEXTRACTDOMAINNAME.html

Интересная статья. Как добиться аналогичного в LibreOffice Calc?
Насколько я понял, регулярные выражения поддерживаются не во всех функциях?
Блог про LibreOffice: Советы, трюки, хитрости, инструкции, руководства
http://librerussia.blogspot.ru

rami

Цитата: Dmitry M. от 16 января 2015, 10:10Как добиться аналогичного в LibreOffice Calc?
Если нужно решить задачу с помощью регулярных выражений и "родных" офисных формул, то получаются довольно сложные формулы, а я ленюсь "вязать кружева". Но если нужно получить результат любым способом, то самое простое для меня написать пользовательскую функцию:
Function DOMAIN(s$)
x=Split(s,"/")
DOMAIN=x(2)
End Function

В ячейке A1 пишите текст: httр://forumooo.ru/index.php/topic,4708.msg29210/topicseen.html#msg29222
В ячейке B1 формула: =DOMAIN(A1) и результат: forumooo.ru
Функцию(макрос) нужно поместить в библиотеку Standard в документе или в "Мои макросы и диалоги"

tagezi

Цитата: rami от 16 января 2015, 12:33В ячейке A1 пишите текст: httр://forumooo.ru/index.php/topic,4708.msg29210/topicseen.html#msg29222
В ячейке B1 формула: =DOMAIN(A1) и результат: forumooo.ru
Рами, а если адрес в таком виде? forumooo.ru/index.php/topic,4708.msg29210/topicseen.html#msg29222
Имя домена будет index.php ? :)
Но я согласен с тем что решение через макросы более красивое и простое для понимания.
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

,,,

а ещё адрес может быть www.мойсайт.руру#трололо
Блог про LibreOffice: Советы, трюки, хитрости, инструкции, руководства
http://librerussia.blogspot.ru

tagezi

Цитата: Dmitry M. от 16 января 2015, 15:57
а ещё адрес может быть www.мойсайт.руру#трололо
Не может.
после домена всегда есть слеш, www. это адрес домена третьего уровня
то есть твой адрес - www.мойсайт.руру/#трололо
соотвествено домен - www.мойсайт.рурy
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

,,,

Значит по слешам смело можно отсекать, а вот как быть с www
Блог про LibreOffice: Советы, трюки, хитрости, инструкции, руководства
http://librerussia.blogspot.ru

JohnSUN

Как быть... Да скопировать весь столбец в соседний, выделить его, и для выделенного через поиск/замену с включенными регэкспами помножить ненужное на ноль... Сами регэкспы взять из той же статьи, с которой топик и начался... Всю эту последовательность записать макрорекордером и получившийся макрос запрятать подальше (в следующий раз он понадобится года через полтора)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: tagezi от 16 января 2015, 13:45а если адрес в таком виде? forumooo.ru/index.php/topic,4708.msg29210/topicseen.html#msg29222
Имя домена будет index.php ?
Адрес я копировал из адресной строки в браузере, он отображается без http://, но копируется с http:// в начале. Если вручную вырезать части адреса, то проще сразу вырезать то, что нужно. Из какого источника можно скопировать адрес без <сетевой протокол>://?
Ещё я должен был в пользовательской функции обработать ошибки(если строка не URL), но поторопился.

tagezi

Цитата: rami от 16 января 2015, 13:23Адрес я копировал из адресной строки в браузере, он отображается без http://, но копируется с http:// в начале. Если вручную вырезать части адреса, то проще сразу вырезать то, что нужно. Из какого источника можно скопировать адрес без <сетевой протокол>://?
Прости сейчас нет времени много рассуждать. Сессия в самом разгаре.
Если не обрабатывать возможные исключения то в итоге можно получать очень странные результаты. Да я согласен с тем что урл в большинстве браузеров в большинстве случаем работают копируется с протоколом, но и в них бывают исключения. Но источник данных может быть вовсе не адресная строка браузера. Поэтому нужно отрабатывать в макросе эти ситуации.
По поводу второго, да, если делаем как нужно.
Но для себя можно и так конечно..

Просто у Димы теоретический вопрос, и тут лёгкого ответа не предполагается.

Цитата: JohnSUN от 16 января 2015, 13:12Как быть... Да скопировать весь столбец в соседний, выделить его, и для выделенного через поиск/замену с включенными регэкспами помножить ненужное на ноль... Сами регэкспы взять из той же статьи, с которой топик и начался... Всю эту последовательность записать макрорекордером и получившийся макрос запрятать подальше (в следующий раз он понадобится года через полтора)
+1

:)
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha