Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 БД с поддержкой регулярных выражений  [new]
EINY
Member

Откуда:
Сообщений: 4
Добрый день,

У меня вот такой вопрос - требуется БД, которая бы более-менее поддерживала POSIX-стандарт регулярных выражений.

Требований к быстродействию и других специфических требований ну почти совсем нет, то есть, БД будет использоваться довольно редко: закачал большой обьем данных (несколько миллионов записей), не торопясь обработал regexp'ами, получил нужную информацию.

Мне пока ничего, кроме MySQL, на ум не приходит. Кстати, удивительно, что MS SQL Server рег. выражения не поддерживает. Или есть какие-нибудь доп. модули к нему?


Извините, если что, я в БД еще "чайник" ;-)
19 ноя 03, 15:27    [424693]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Gt_
Guest
такое есть в Oracle 10G который еще похоже не продается ...
может модуль какой к posgre есть, но не слышал
19 ноя 03, 16:42    [424923]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Если в Java есть возможность работы с регулярными выражениями - пакет java.util.regex или, к примеру, http://www.savarese.org/oro/index.html - то, полагаю, такую же функциональность можно реализовать и в Oracle, начиная с версии 8i, на основе загруженных в БД Java-классов. Особенно, если не предъявляются требования к быстродействию.
19 ноя 03, 16:50    [424948]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4257
--У меня вот такой вопрос - требуется БД, которая бы более-менее поддерживала POSIX-стандарт регулярных выражений

почти все базы поддерживают XP а в ней можно вызвать любую dll - с парсером
19 ноя 03, 21:30    [425339]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Gt_
Guest
в смысле хп вытащит всю бд и прогонит через dll ? конечно вариант но ... для специфических условий.
19 ноя 03, 23:40    [425392]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4257
--в смысле хп вытащит всю бд и прогонит через dll ? конечно вариант но ... для -специфических условий.

куда вытащить ?

просто в базу выполняешь обычнаый запрос типа

SELECT FUNC(my_text, "[a-w]+") from table

и сервер парсирует твое поле
20 ноя 03, 00:08    [425415]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
c127
Guest
>Кстати, удивительно, что MS SQL Server рег. выражения не поддерживает. Или есть какие-нибудь доп. модули к нему?

Все РСУБД поддерживают регулярные выражения, даже MSSQL сервер, только они немного отличаются от POSIX. Это стандарт SQL. Посмотри оператор LIKE. Может оказаться, что проще написать конвертор и использовать like.
20 ноя 03, 01:13    [425464]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
EINY
Member

Откуда:
Сообщений: 4
Конечно же, я знаю про LIKE в MS SQL Server.

Но, согласитесь, то, что предлагает LIKE, иначе как "жалким подобием" рег. выражений, назвать нельзя, не правда ли?

Например, в рег. выражениях мне сильно нужны оператор "ИЛИ" ("|"), манипуляции с подстроками ($1, $& и т.п.), желательны, также, и "ограничители жадности" ("?")
20 ноя 03, 10:46    [425818]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
В Oracle 10g есть полная поддержка рег. выражений. Выход 10g ожидается в декабре. Цена неизвестна ;-)
20 ноя 03, 20:39    [427322]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
c127
Guest
>Например, в рег. выражениях мне сильно нужны оператор "ИЛИ" ("|"), манипуляции с подстроками ($1, $& и т.п.), желательны, также, и "ограничители жадности" ("?")

ИЛИ это or в SQL-е , '?' это по-моему '.', не помню точно, в любом случае это все можно легко записать на SQL-е. С $1 наверное сложнее, но $1 это уже не совсем регулярные выражения, это скорее расширение, типа программирование sed-а или awk. Хотя не претендую.

Моя идея такая. Если ты сам формируешь критерий поиска, то может можно сразу формировать SQL выражение, если пишет пользователь, причем используется какое-то подмножество регулярных выражений, то может быть проще написать конвертор в SQL. В остальных случаях самое лучшее по-моему - вызывать внешнюю процедуру из стандартной библиотеки, как тут советовали, многие SQL сервера это умеют это делать. Скорость сильно не упадет, все равно будет бежать по всей таблице.
21 ноя 03, 00:21    [427395]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
EINY
Member

Откуда:
Сообщений: 4
Нет,

под ИЛИ я имел в виду: "если найдено рег. выражение1 либо рег.выражение2, то - заменить"

"?" - это "ограничение жадности квантификатора", в LIKE аналога нету

$1, $&, $` и прочее - я не помню, есть ли это в стандарте, но это удобное дополнение в рег. выражением.

В общем, задачу свою я сейчас делаю в MySQL, если не получится - напишу программку-парсер на perl.
21 ноя 03, 10:44    [427779]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
Gt_
Guest
--в смысле хп вытащит всю бд и прогонит через dll ? конечно вариант но ... для -специфических условий. 



куда вытащить ?

просто в базу выполняешь обычнаый запрос типа

SELECT FUNC(my_text, "[a-w]+") from table

и сервер парсирует твое поле


так несколько урезанно получится, а если зависищий от параметров на замену, типа заменить корни фамилии на ский корнями от фамилий на ко :)

P.S. like - жалкое поодобие левой руки.

Gt_
21 ноя 03, 16:00    [428616]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
MSSQL может грузить и использовать практически любой ActiveX-объект, а том числе и VBScript.RegExp
21 ноя 03, 16:38    [428719]     Ответить | Цитировать Сообщить модератору
 Re: БД с поддержкой регулярных выражений  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
А еще есть вот такая ссылочка http://www.codeproject.com/database/xp_pcre.asp

И вообще загугляние дает хорошую пищу для размышлений.
21 ноя 03, 16:43    [428729]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить