Необходимо создать gmail, подобный синтаксису поиска; может быть с использованием регулярных выражений? - PullRequest
3 голосов
/ 16 ноября 2010

Мне нужно расширить возможности поиска на странице со списком учетных записей пользователей. Вместо того, чтобы иметь несколько окон поиска для каждого возможного поля или раскрывающееся меню, в котором пользователь может выполнять поиск только по одному полю, я хотел бы использовать одно окно поиска и использовать синтаксис, подобный gmail. Это лучший способ, которым я могу описать это, и то, что я подразумеваю под синтаксисом поиска, подобным gmail, - это возможность ввести в поле ввода следующее:

имя пользователя: bbaggins тип: admin "make up plc"

Когда форма отправлена, строка поиска должна быть разбита на отдельные части, что позволит мне построить запрос SQL. Так, например, type: admin будет частью предложения WHERE, так что он найдет любую запись, где поле type равно admin и тому же для имя пользователя . Текст в кавычках может быть свободным текстовым поиском, но я еще не уверен в этом.

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

Приветствия

Адам

Ответы [ 3 ]

1 голос
/ 16 ноября 2010

Вам не обязательно использовать регулярное выражение.Регулярные выражения мощные, но во многих случаях также медленные.Regex также не очень хорошо обрабатывает вложенные параметры .Вам будет проще написать скрипт, который использует манипуляции со строками для разделения строки и извлечения ключевых слов и имен полей.

Если вы хотите поэкспериментировать с Regex, попробуйте онлайн-тестер REGex .Найдите учебник и поиграйте, это весело, и вы сможете быстро найти полезные регулярные выражения, которые находят любые слова до или после символа : или любые предложения между " кавычками.

1 голос
/ 16 ноября 2010

Нет, вы бы не использовали регулярные выражения для этого. Просто разбейте строку на пробелы на любом языке, который вы используете.

0 голосов
/ 18 ноября 2010

спасибо за ответы ... Я начал делать это без регулярных выражений и просто подумал, будет ли регулярное выражение проще. Звучит так, будто этого не произойдет, поэтому я вернусь к тому, как я это делал, и снова протестирую.

Старый добрый мистер Бильбо - мой помощник для любых именных потребностей: -)

Приветствия

Адам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...