Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
8 / 8 / 3
Регистрация: 06.03.2014
Сообщений: 106
1

Регулярное выражение для доменного имени

26.07.2016, 17:34. Показов 1498. Ответов 5

Здравствуйте. У меня есть регулярка
C#
1
^(?!company\d)([a-z0-9]\w+\.domain\.com)*$
Она не матчится, если мы вводим строку типа company123.domain.com. Но так же она не работает для случаев company1qq23.domain.com или company123qq.domain.com. Подскажите как сделать, чтобы выражения типа company1qq23.domain.com или company123qq.domain.com проходили проверку?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2016, 17:34
Ответы с готовыми решениями:

Регулярное выражение для проверки корректности доменного имени
Подскажите регулярное выражение для проверки корректности доменного имени вида xxxxxx.xxx (к...

Регулярное выражение для обрезки имени
Доброго времени суток. Не подскажете регулярное выражение для обрезки имени. пример :...

Регулярное выражение для проверки имени файла
Доброе время суток! Помогите пожалуйста написать регулярное выражение, которое будет проверять...

Регулярное выражение для тегов
Не могу додуматься, как сделать так чтобы выражение что в тэги t было все синие(одним и вторым...

5
282 / 262 / 173
Регистрация: 27.07.2014
Сообщений: 584
26.07.2016, 21:30 2
yur@,
C#
1
string pattern = @"company[0-9a-z]*.domain.com";
0
8 / 8 / 3
Регистрация: 06.03.2014
Сообщений: 106
26.07.2016, 21:40  [ТС] 3
Sanan07, в таком случае, оно пропустит также и строку company123.domain.com, а мне надо её ограничить.
Мы должны пропускать любую комбинацию, например
company1q2q3.domain.com,
company12q3.domain.com,
companyq1q2q3.domain.com,
company.domain.com,
somename.domain,com,
но нельзя пропускать строку формата companyХХХ.domain.com, где ХХХ-только цифры, количество которых не известно (от 1 до 8)
0
Администратор
Эксперт .NET
13170 / 10726 / 4425
Регистрация: 17.03.2014
Сообщений: 21,624
Записей в блоге: 1
26.07.2016, 22:03 4
yur@, можно проверить двумя выражениями:
C#
1
if (Regex.IsMatch(domain, @"^[a-z0-9]+.domain\.com$") && !Regex.IsMatch(domain, @"^[a-z]+[0-9]{1,8}.domain\.com$"))
0
8 / 8 / 3
Регистрация: 06.03.2014
Сообщений: 106
26.07.2016, 22:15  [ТС] 5
OwenGlendower, я сначала так и делал, а теперь приходится добавить в модель для поля Domain атрибут RegularExspression, а он принимает паттерн в виде одной строки

Добавлено через 4 минуты
OwenGlendower, я попытался преобразовать к такому виду
C#
1
^(?!company+[0-9]{1,8}(?![a-z]))([a-z0-9]\w+\.domain\.com)*$
Но оно игнорирует вот эту {1,8} часть. То есть оно пропускает имя company1q2.domain.com, но если я напишу company11q2.domain.com, то уже не работает
0
1000 / 626 / 372
Регистрация: 07.11.2015
Сообщений: 999
28.07.2016, 20:58 6
Цитата Сообщение от yur@ Посмотреть сообщение
но нельзя пропускать строку формата companyХХХ.domain.com, где ХХХ-только цифры, количество которых не известно
(?!company\d+\.)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2016, 20:58

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Регулярное выражение для xml
Регулятор выражение xml Тема пойдет о регуляторе выражения без парсинга, причина почему парсинг...

Регулярное выражение для e-mail'a
Добрый день, столкнулся с небольшой проблемой. Потребовалось написать регулярное выражение,...

Регулярное выражение для пароля
Здравствуйте, помогите мне, пожалуйста, с заданием: Проверить, соответствует ли пароль...

Регулярное выражение для IP -адресов
С регулярными выражениями ещё не сталкивался в программировании на С#. Как будет выглядеть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.