Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой вопрос по регулярным выражениям, проверка на диапозоны чисел 
V
    Опции темы
SABROG
Дата 3.6.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Предположим есть текст:

"123фыадо 23323ффывал0324фывлаоф 2342 2 0 ф фыа"

Хочу составить регулярное выражение, которое сможет:

- определять диапозоны чисел, например найти все числа с диапозоном 10-200 или 500-5000
- все числа целые, положительные, до 33 знаков включительно

Это сообщение отредактировал(а) SABROG - 3.6.2008, 15:22


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Lazin
Дата 3.6.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(SABROG @  3.6.2008,  15:18 Найти цитируемый пост)
определять диапозоны чисел, например найти все числа с диапозоном 10-200 или 500-5000

а не проще найти все числа, а потом проверить их диапазон, AFAIK регулярным выражением это сделать нельзя

Цитата(SABROG @  3.6.2008,  15:18 Найти цитируемый пост)
все числа целые, положительные, до 33 знаков включительно

Код

[0-9]{0-33}

PM MAIL Skype GTalk   Вверх
SABROG
Дата 3.6.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



А дело в том, что после того как народ узнал, что такое регулярные выражения, возможность их использовать начали пихать в различные поисковые функции, а конечному пользователю остается только две возможности: ввести регулярку и получить результат. На примере Total Commander'a, у меня есть тысячи файлов, где в имени только цифры, но т.к. эти тысячи за несколько лет, то мне нужны только некоторые диапозоны. Естественно я не смогу на коленке написать плагин для тотала, да и эти регулярки используются и в SQL запросах, там тоже особо не посравниваешь без промежуточных таблиц.

Насчет невозможности проверить. Вот пример проверки диапозона значения для IP адреса:

Код

^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$


Но чет я никак не могу разобраться как выцепить нужную мне часть.
---
Кажись разобрался, сделать можно, но писать надо много smile http://regexlib.com

Вот взял пример проверки диапазона портов 1024-49151:

Код

^(4915[0-1]|491[0-4]\d|490\d\d|4[0-8]\d{3}|[1-3]\d{4}|[2-9]\d{3}|1[1-9]\d{2}|10[3-9]\d|102[4-9])$


Это сообщение отредактировал(а) SABROG - 3.6.2008, 16:49


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




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


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

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