RegExp для строки поиска

cybersage

Новичок
RegExp для строки поиска

Весь поиск перерыл, но что-то не нашёл.

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

"regular expression" keyword parse
Т.е. в одном запросе могут быть как и отдельные ключевые слова, так и ключевые фразы (в кавычках).

Какой самый оптимальный способ разделять ключевые слова и фразы (которые могут быть заключены в одинарные или двойные кавычки. При этом учитывать разницу между побочным использованием кавычек (например - 15.4"Wide).

После обработки должно получаться что-то вроде этого:

[0] => regular expression
[1] => keyword
[2] => parse
Ну или хотя бы ссылками ткните.
 

LeFF®

Новичок
cybersage
а как поиск работать должен если будет примеру
15" слово "слово сочетание"
?
 

cybersage

Новичок
Автор оригинала: LeFF®
cybersage
а как поиск работать должен если будет примеру
15" слово "слово сочетание"
?
ну ладно, погорячился. беруться только фразы внутри кавычек, фиг с ними с дюймами :)
 

Beavis

Banned
внутри каких кавычек?
этих
15" слово "слово сочетание"
или
15" слово "слово сочетание"
этих?
 

nirex

Новичок
вообще лучше всего для таких целей обычный парсер написать, для пробега по строке с условиями конца слова или нескольких слов:
Если встречается ' то записывать в текущую подстроку пока не встретишь '
так же и с остальным

такую ф-ию можно сделать с параметрами

$str = строка по которой будет произведен поиск
$eol = список символов на которых будет начинаться предложение и оканчиваться list('\'', '"', ' ');


parseSearchQuery( $str, $eol)
{
$out;
// а над логикой подумай, она совсем не сложная ))

return $out;

}
 
Сверху