Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> непонятки с регуляркой, опять глупый вопрос 
:(
    Опции темы
dj100500
Дата 15.12.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.10.2010

Репутация: нет
Всего: нет



 private string ips = @"[0-255]+\.[0-255]+\.[0-255]+\.[0-255]+";
    private void filtr()
    {
        MatchCollection mc = Regex.Matches(richTextBox1.Text, ips, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
        foreach (Match m in mc)
        {
            richTextBox2.Text += m.Value + "\n";
        }
    }


на вход идут
255.255.255.255
192.0.1.23
127.0.0.1
4.4.4.4
93.0.11.172


а на выходе почемуто
255.255.255.255
2.0.1.2
 smile 
PM MAIL   Вверх
i2m
Дата 15.12.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 4.5.2010

Репутация: нет
Всего: 1



dj100500, Ну все правильно, как записал так и работает =) [0-255] не все так просто =) Это идет перечисление в вашем случае оно эквивалентно [0-2] вот и получается что он выдает такие результаты.

Код

\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}


Вот регулярка которая будет обрабатывать это все верно, но будет пропускать значения вида 999.999.999.999, если это не суть важно то можно пользоваться, если нет, то городить уже сложные конструкции.

Это сообщение отредактировал(а) i2m - 15.12.2010, 15:26
PM MAIL   Вверх
patap
Дата 15.12.2010, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: нет
Всего: 40



Цитата(i2m @  15.12.2010,  14:18 Найти цитируемый пост)
но будет пропускать значения вида 999.999.999.999

вот решение, из открытых, так сказать, источников ))
Код

(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)



--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
dj100500
Дата 15.12.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.10.2010

Репутация: нет
Всего: нет



уф а чо так сложно smile  
проверил робит пасибки smile 

Это сообщение отредактировал(а) dj100500 - 15.12.2010, 16:09
PM MAIL   Вверх
patap
Дата 15.12.2010, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: нет
Всего: 40



ну как че?) чтобы учесть только валидные числа, т.е. от 0 до 255


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Мурлыкатам_
Дата 15.12.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 5.2.2007
Где: город-герой Минск

Репутация: нет
Всего: 2



Я бы сделал: 

Код

\d+\.\d+\.\d+\.\d+


А затем проверку на исключение с помощью IPAddress.Parse();

Ну это не принципиально, а так, поддержать дискуссию smile

А если строки вообще должны напрямую восприниматься как айпи адрса, я бы вообще убрал регулярное и сделал проверку только с помощью парс метода smile

Это сообщение отредактировал(а) Мурлыкатам_ - 15.12.2010, 16:47


--------------------
Хочешь что-то сделать - сделай это сам или попроси помощи на винграде smile
user posted image
PM MAIL ICQ   Вверх
YankovskyAndrey
Дата 23.12.2010, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



хорошая статья на кодпроджект
http://www.codeproject.com/KB/dotnet/regextutorial.aspx

Добавлено через 36 секунд
есть ещё visual studio extension "что-то там Regex"
удобно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0691 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.