Как определить, что регвыр - это регвыр для числа?

Hapuk

Новичок
Как определить, что регвыр - это регвыр для числа?

собственно, сабж...

можно ли вообще это сделать с помощью простейших операций?
естессна, что наше проверяемое регулярное выражение является корректным и не обязательно самым простым: [0-9]+ или \d+

спасибо.
 

zerkms

TDD infected
Команда форума
заюзать preg_match и на вход дать несколько тестовых значений
сравнить ожидаемые результаты с действительными
 

Hapuk

Новичок
Автор оригинала: zerkms
заюзать preg_match и на вход дать несколько тестовых значений
сравнить ожидаемые результаты с действительными
regexp = [1,2,3]+
проверяю на числах: 4, 5, 6...
хм, не число аданака =))

спасибо.
 

zerkms

TDD infected
Команда форума
Hapuk
ну тогда в принципе невозможно
потому что если не знать - чего ожидать от регулярного выражения -> нельзя с достоверной вероятностью это "что-то" подтвердить или опровергнуть ;)
 

SelenIT

IT-лунатик :)
Имхо, в принципе возможно - отбросить все служебные последовательности (скобки, квантификаторы...) и посмотреть, есть ли в том, что останется, что-либо кроме цифр и \d. ИМХО гораздо интереснее узнать, где такая задача может возникнуть на практике...
 

Hapuk

Новичок
Автор оригинала: SelenIT
Имхо, в принципе возможно - отбросить все служебные последовательности (скобки, квантификаторы...) и посмотреть, есть ли в том, что останется, что-либо кроме цифр и \d. ИМХО гораздо интереснее узнать, где такая задача может возникнуть на практике...
1. идея то хорошая, и пока писал свои мысли понял, что даже очень хорошая =))
2. конкретно моя цель: определить тип данных столбца в мускуле. заюзаю идею кароче =))

мысли... в общем случае, я думаю это делается так: создается какой-та там конечный автомат на основе нашего регулярного выражения, а потом каким-нить макаром выявляем грамматику, которая по предположению и задает наши числа, а потом ещё надо определить (что наверное легче), что эта грамматика действительно задает наши числа... ох, геморрр и бред ещё тот =))

спасибо.
 

SiMM

Новичок
> определить тип данных столбца в мускуле
С этого и надо было начинать.
[sql]describe `table`[/sql]
 

Hapuk

Новичок
лана, признаю, что не совсем дописал самоцель: определить по заданному регвыру данные, которым оно удовлетворяет, и выбрать необходимый тип для столбца при создании таблицы в мускуле. думаю, что и первый вариант нес в себе именно такую смысловую нагрузку, при условии, что название темы прочитано =))

спасибо.
 

kruglov

Новичок
Hapuk
Нуу, есть мнение формализовывать числа не регулярными выражениями, а как-то попроще... И пользователю легче будет.

Офф: напишите-ка сходу регулярные выражения для smallint, int и float.
 

SiMM

Новичок
> лана, признаю, что не совсем дописал самоцель:
Ты вообще, откровенно говоря, херню какую-то написал. Тебе всего-то надо было - написать
> регулярные выражения для smallint, int и float
DATE, DATETIME, и т.д.
И назвать при таких условиях топик
> Как определить, что регвыр - это регвыр для числа?
это ещё надо умудриться - тебе то не анализом регулярных выражений надо заниматься, а написанием этих регулярок.
 

Hapuk

Новичок
SiMM
> Ты вообще, откровенно говоря, херню какую-то написал. Тебе всего-то надо было - написать
>> регулярные выражения для smallint, int и float
судя по твоей херне, ты опять нихрена не понял
> тебе то не анализом регулярных выражений надо заниматься, а написанием этих регулярок
не начинай, пжлста, говорить, что я не знаю, что хочу... вопрос был "Как определить, что регвыр - это регвыр для числа?"... стоп!

пс... смотри личку

kruglov
ну, допустим, жызненный и бесполезный пример: надо задать регвыр для целых четных чисел в диапазоне [100;999]. ясно дело можно условно отметить галочками: число, целое, положительное, четное, минимальное = 100, макимальное = 999. из этого делаем вывод, что это SMALLINT. в идеале хотелось бы задать регвыр [1-9][0-9][0,2,4,6,8], по которому просто уж определить что это INT. разница в описании числа, думаю, есть. а пользователю, что писать регвыр, что на галочки тыкать, одинаковая сложность ))

спасибо.
 

kruglov

Новичок
Hapuk
Дык это, где регулярка для float?

Для четных? Круто. А для чисел, делящихся на 3?
 

Hapuk

Новичок
kruglov
> Дык это, где регулярка для float?
шо? хлопцы, ето тест шоля? )) ты про float для мускула или вообще про цисла с плтчк? а для UNSIGNED или как? а версия мукусла какая? )))
> Для четных? Круто. А для чисел, делящихся на 3?
да все числа вроде бы делятся на три... ах, ну наверное без остатка имелось в виду... ловец слов прям-таки =))

и четные числа, и числа четные трём... таких задач то не будет, думаю.

спасибо.
 

kruglov

Новичок
> шо? хлопцы, ето тест шоля?
Ну дык не я первый сказал, что "пользователю, что писать регвыр, что на галочки тыкать, одинаковая сложность". Вот и покажите, что это просто, как "на галочки тыкать"
 

Hapuk

Новичок
оправдываться чтоли или написать... а поиком можна пользоватлься или факом? ))

пока оправдываться буду: одинаковая сложность... и палюбэ один выход - позвонить и узнать, а что такое четные числа, а что такое целые?

спасибо.
 
Сверху