URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7072
[ Назад ]

Исходное сообщение
"Регулярные выражения. Поиск по диапазону"

Отправлено Lion__ , 30-Ноя-10 22:11 
Допустим есть таблица с полем field
Имеются записи:
aa77||bb22|cc45
aa2||bb86|cc19
aa165||bb48|cc37
aa64||bb39|cc48

Мне нужно выбрать поля допустим где есть значения aaN, где N это диапазон от 60 до 80.

Как правильно составить запрос что бы получить эти поля


Содержание

Сообщения в этом обсуждении
"Регулярные выражения. Поиск по диапазону"
Отправлено Etch , 01-Дек-10 08:20 
Примерно как-то так:

/^aa([67][0-9]|80)\|\|/


"Регулярные выражения. Поиск по диапазону"
Отправлено Lion__ , 02-Дек-10 18:31 
> Примерно как-то так:
> /^aa([67][0-9]|80)\|\|/

Ну я дал для примера значения, но в реальности они могут быть разными


"Регулярные выражения. Поиск по диапазону"
Отправлено Lion__ , 02-Дек-10 21:35 
>> Примерно как-то так:
>> /^aa([67][0-9]|80)\|\|/
> Ну я дал для примера значения, но в реальности они могут быть
> разными

Например если брать только диапазон чисел, то вот
64-120
будет:
(6[4-9]|[7-9][0-9]|1[01][0-9]|120)

Правильно?? Вот как такой генератор строки на php сделать?))


"Регулярные выражения. Поиск по диапазону"
Отправлено Pahanivo , 02-Дек-10 22:22 
>>> Примерно как-то так:
>>> /^aa([67][0-9]|80)\|\|/
>> Ну я дал для примера значения, но в реальности они могут быть
>> разными
> Например если брать только диапазон чисел, то вот
> 64-120
> будет:
> (6[4-9]|[7-9][0-9]|1[01][0-9]|120)
> Правильно?? Вот как такой генератор строки на php сделать?))

а не проще базу к нормальному виду привести? )


"Регулярные выражения. Поиск по диапазону"
Отправлено Lion__ , 03-Дек-10 00:14 
>>>> Примерно как-то так:
>>>> /^aa([67][0-9]|80)\|\|/
>>> Ну я дал для примера значения, но в реальности они могут быть
>>> разными
>> Например если брать только диапазон чисел, то вот
>> 64-120
>> будет:
>> (6[4-9]|[7-9][0-9]|1[01][0-9]|120)
>> Правильно?? Вот как такой генератор строки на php сделать?))
> а не проще базу к нормальному виду привести? )

Не проще, это всё динамика, те же aaa, bbb - могут существовать, а могут и не существовать.



"Регулярные выражения. Поиск по диапазону"
Отправлено Pahanivo , 03-Дек-10 13:28 
> Не проще, это всё динамика, те же aaa, bbb - могут существовать,
> а могут и не существовать.

ну дак может тогда стоит четко и полно изложить исходную задачу
а то у тебя формат меняется от поста к посту


"Регулярные выражения. Поиск по диапазону"
Отправлено Etch , 03-Дек-10 00:53 
> Правильно?? Вот как такой генератор строки на php сделать?))

Похоже, что вам нужно перегнать эти данные в SQL базу данных.


"Регулярные выражения. Поиск по диапазону"
Отправлено Lion__ , 03-Дек-10 01:03 
>> Правильно?? Вот как такой генератор строки на php сделать?))
> Похоже, что вам нужно перегнать эти данные в SQL базу данных.

Они и так в базе, но хранятся в одном поле в таком виде как в первом посте, создавать под каждый параметр поле не дело, т.к. надо переделывать будет структуру


"Регулярные выражения. Поиск по диапазону"
Отправлено Etch , 03-Дек-10 12:52 
Вообще-то это единственный верный вариант. А не дело, это когда сначала достают данные из базы, а потом регекспами и другими проверками проверяют какие же из этих данных на самом деле нужны...

Ну если уж очень хочется, то я бы сделал как-то так:
if( ($str =~ m/^aa(\d+)/) && ($1 >= $min) && ($1 <= $max) ){
   ...
}