Возникла необходимость в текстовом процессоре.
Под текстовым процессором я понимаю некий компонент подобный Regex.
Он должен по вводимой маске определять вхождение в текст, позицию вхождения и т.д.
В маске должен быть доступен набор слов. Именно слов, а не символов.
Желательна поддержка И, ИЛИ, НЕ.
Хочу чтобы нечто вроде "капуста AND валюта NOT рубли" накладывалось на "баксы валюта — капуста" и т.д.
Regex определяет именно набор символов, чем меня ОЧЕНЬ не устраивает.
Если кто-нибудь понял что я имею ввиду и знает где валяется такого рода библиотека, напишите пожалуйста.
_>Хочу чтобы нечто вроде "капуста AND валюта NOT рубли" накладывалось на "баксы валюта — капуста" и т.д.
_>Regex определяет именно набор символов, чем меня ОЧЕНЬ не устраивает.
В Regex есть знаки, означающие начало/конец слова. Никаких проблем нету преобразовать "капуста AND валюта NOT рубли" в подходящее для Regex'а выражение. Я, правда, сам Regex'ами редко пользуюсь, на память не помню.
_>Хочу чтобы нечто вроде "капуста AND валюта NOT рубли" накладывалось на "баксы валюта — капуста" и т.д.
_>Regex определяет именно набор символов, чем меня ОЧЕНЬ не устраивает.
В Regex есть знаки, означающие начало/конец слова. Никаких проблем нету преобразовать "капуста AND валюта NOT рубли" в подходящее для Regex'а выражение. Я, правда, сам Regex'ами редко пользуюсь, на память не помню.
_>Хочу чтобы нечто вроде "капуста AND валюта NOT рубли" накладывалось на "баксы валюта — капуста" и т.д.
_>Regex определяет именно набор символов, чем меня ОЧЕНЬ не устраивает.
В Regex есть знаки, означающие начало/конец слова. Никаких проблем нету преобразовать "капуста AND валюта NOT рубли" в подходящее для Regex'а выражение. Я, правда, сам Regex'ами редко пользуюсь, на память не помню.
_>Хочу чтобы нечто вроде "капуста AND валюта NOT рубли" накладывалось на "баксы валюта — капуста" и т.д.
_>Regex определяет именно набор символов, чем меня ОЧЕНЬ не устраивает.
В Regex есть знаки, означающие начало/конец слова. Никаких проблем нету преобразовать "капуста AND валюта NOT рубли" в подходящее для Regex'а выражение. Я, правда, сам Regex'ами редко пользуюсь, на память не помню.
Здравствуйте, mihailik, Вы писали:
M>В Regex есть знаки, означающие начало/конец слова. Никаких проблем нету преобразовать "капуста AND валюта NOT рубли" в подходящее для Regex'а выражение. Я, правда, сам Regex'ами редко пользуюсь, на память не помню.
Символы "<>" и т.д. это Студийные расширения регулярных выражений и Regex их не поддерживает.
(Хотя я и не исключаю возможность кривого кодирования)
Более того, Regex синтаксис выражения типа ("кошка" AND "Машка") i.e. "кошка Машка" и "Машка кошка" по меньшей мере сложен для чтения.
Очень понравился синтаксис запроса поисковика по www.rsdn.ru. Где бы раздобыть такую библиотеку?
Прим. самому написать можно, но долго и не интересно. На одаптацию одной лишь польской натации уйдет минимум неделя.
Здравствуйте, m_nickolay, Вы писали:
_>Символы "<>" и т.д. это Студийные расширения регулярных выражений и Regex их не поддерживает.
\b
_>Более того, Regex синтаксис выражения типа ("кошка" AND "Машка") i.e. "кошка Машка" и "Машка кошка" по меньшей мере сложен для чтения.
Тебе предлагают перекодировать то выражение что ты хочешь в регекс самостоятельно, а потом уже для поиска использовать полученный регекс.
_>Очень понравился синтаксис запроса поисковика по www.rsdn.ru. Где бы раздобыть такую библиотеку?
А там ссылочка есть. Только это не библиотека, а продукт и за деньги.
За символ "\b" спасибо.
AVK>Тебе предлагают перекодировать то выражение что ты хочешь в регекс самостоятельно, а потом уже для поиска использовать полученный регекс.
AVK>А там ссылочка есть. Только это не библиотека, а продукт и за деньги.
Интерпретация в Regex выражение это "пожарный" вариант, т.к. Regex — штука долгая, даже если его компилировать.
А для среднего объема данных (но не настолько большого чтобы использовать крутую DBMS) это время достаточно большое.
Хотелось бы чего-нибудиь вмеру простого, но быстрого.
Здравствуйте, m_nickolay, Вы писали:
AVK>>А там ссылочка есть. Только это не библиотека, а продукт и за деньги.
_>Интерпретация в Regex выражение это "пожарный" вариант, т.к. Regex — штука долгая, даже если его компилировать. _>А для среднего объема данных (но не настолько большого чтобы использовать крутую DBMS) это время достаточно большое.
_>Хотелось бы чего-нибудиь вмеру простого, но быстрого.
Ну тогда выкачивай YACC, описывай в нем грамматику, потом реализуй свои собственные индексы для полнотекстового поиска. Будет просто и быстро.