drno-reg
@drno-reg
см не кратко

Как должно выглядеть правильно регулярное выражение для поиска имени хоста?

groovy
def URL = "sdfgsdfg https://inclouds.bizmail.ru hgfghfhgfhgf gfhgf"

print(URL.findAll(/\/\/(\w+.\w+.\w+)/))


Возвращает:
[//inclouds.bizmail.ru][[://inclouds.bizmail, inclouds.bizmail]]


Но мне нужно inclouds.bizmail.ru.

Как это сделать правильно?
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
У вас как минимум точка не экранирована, а значит это "любой символ". Но это так, к слову.

А ответ такой:
def URL = "sdfgsdfg https://inclouds.bizmail.ru hgfghfhgfhgf gfhgf"

print(URL.findAll(/(?<=:\/\/)[\w\d.]+/))

Хотя и он далёк от совершенства. Более точные условия задачи помогут его улучшить.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
print(URL.findAll(~(?=https://)[^\s]+~))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы