QRegExp vs IP адрес, какое выражение применить чтоыб вычеслить IP ? |
Здравствуйте, гость ( Вход | Регистрация )
QRegExp vs IP адрес, какое выражение применить чтоыб вычеслить IP ? |
flankerr |
10.7.2008, 14:16
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
предположим надо проверить является ли строка простым текстом или IP адресом
т.е. строка "192.168.10.15" это IP адрес а вот строки: "500.345.112.0" или "123.123.figa" и т.п. IP адресом не являються сразу отсекаем строки где есть не цифры
для начала чуть локализуем для простоты: надо распознать диапазон от 0 до 255 и разделить их точками т.е. строки "000" "00" "0" "5" "55" "255" нам подходят а вот строки "1234" "257" "311" и т.п. нам НЕ подходят навскидку вариант первый: ([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$ но он НЕ даёт желаемого символ '$' пчоему то НЕ ограничивает строку или я не понмаю как его использовать |
|
|
flankerr |
10.7.2008, 14:47
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
решение нашлось
чтобы символ '$' отрабатывал ожилаемо его надо использовать в паре с символом начало строки '^' а искомый шаблон для IP адреса выглядит так: "^(([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$" |
|
|
void* |
17.7.2008, 9:39
Сообщение
#3
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
вот еще вариант рег. выражения для ip-адреса:
|
|
|
flankerr |
21.7.2008, 17:41
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
21.7.2008, 17:45
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
на прогорге вымучивали долго, но вымучили этот регэксп
вроде такой вариант был: QRegExp rx( "\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b" ); |
|
|
flankerr |
23.7.2008, 13:07
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
мне больше нравиться мой вариант как более наглядный
|
|
|
Текстовая версия | Сейчас: 3.1.2025, 13:48 |