2015-07-09 5 views
-5

я буду использовать выражение сRegex для извлечения только домен из поддоменов

Regex.Replace(); 

заменить остальные с «».

входы: http://therealzenstar.blogspot.fr выход: blogspot.fr

+1

Ваш вопрос действительно, действительно расплывчатый. Отредактируйте его, чтобы добавить более подробную информацию - какие входные данные? Каков ожидаемый результат? что ты уже испробовал? –

+0

Добро пожаловать в StackOverflow. Имейте в виду, что качество вашего вопроса stronlgy связано с тем, как хорошие люди могут вам помочь. Слишком мало информации в вашем вопросе (пока), чтобы генерировать любые содержательные ответы. Пожалуйста, напишите несколько подробностей. Посмотрите: [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask) –

+0

'/ https?: \/\/\ W + \. (\ W + \ . \ w +)/'это может работать для ваших входов. – Kerwin

ответ

0

Просто итерацию на комментарий Йенса, мы должны угадать: Каков ваш ожидаемый результат, когда появляется дополнительная информация, например, http://therealzenstar.blogspot.fr/somedata.html. Это все еще blogspot.fr? Нужны ли такие примеры для удовлетворения?

Вы сказали, что хотите заменить «все остальное» на "". Replace() заменит все, что соответствует тому, что вы хотите. Итак, чтобы заменить его "", вам нужно будет соответствовать всем, что вам не хочет. Возможно, однако, гораздо легче захватить то, что вы хотите, и заменить все совпадения на $ 1.

Предполагая, что вы всегда хотите только domain.xx, даже если появится дополнительная информация. Что-то вроде этого будет работать: ^(?:https?:\/\/)?[^\/\s]*\.([^.\s\/]*\.[^.\s\/]*)(?:$|\/.*), как видно: https://regex101.com/r/hN8iQ7/1

Проблема возникает, если ваши домены также включают те, у которых есть несколько расширений. То есть domain.co.uk. Вам нужно будет их конкретно адресовать (называя их), так как очень сложно обобщить способ различать эти элементы.

^(?:https?:\/\/)?[^\/\s]*?\.([^.\s\/]*\.(?:co\.uk|[^.\s\/]*))(?:$|\/.*) - с .co.uk опция добавлена. https://regex101.com/r/hN8iQ7/2.

yourregex.Replace(yourstring, "$1") может делать то, что вам нужно.

Смежные вопросы