У меня есть что-то как:-

....wasasa.org.pk
wawwwsasa.msn.com

....ttrt .....ddd.dd www.edu.pk
.ru

Я только хочу выбрать следующее

org.pk
.com
edu.pk

Возможное регулярное выражение, которое я написал,

[AZ]+.(.*)(?=\ S +),

Проблема в том, что его только на дд часть.

С последним регулярным выражением я вижу следующие проблемы:-

.... wasasa.org.pk fgf wawwwsasa.msn.com fgf

.... ttrt ..... ddd.dd www.iffn.pk fgf

www.ru ff www.ru.com fgfgf

.ru фгф

После пробела он перестанет сопоставлять что-либо, например, www.ru.com fgfgs. Регулярное выражение должно работать с пробелом и даже без пробела.

2 ответа2

1

Может быть попробовать что-то подобное?

((?:edu|org)?\.[a-z]+)$
0

Если я понял вопрос, awk может сделать это с помощью:

awk '{split($0,uri,"/");c=split(uri[3],domain,".");
domain[1]=="www"?a=3:a=2; for (i=a;i<=c;i+=1){
printf("%s%s"),domain[i],i==c?"\n":"."}}'

Пример использования:

printf "%s\n" 'https://google.com/search?q=google' 'https://www.google.co.uk/foo' | awk '{split($0,uri,"/");c=split(uri[3],domain,"."); domain[1]=="www"?a=3:a=2; for (i=a;i<=c;i+=1){ printf("%s%s"),domain[i],i==c?"\n":"."}}'

Выход:

com
co.uk

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .