Обрабатывать ключевые слова поиска с логическими параметрами - PullRequest
0 голосов
/ 22 мая 2018

Я хочу обработать строку поисковых ключевых слов с параметрами "and", "or" и "not", например "gis and gjs not gkp", чтобы выполнить поиск по каждому ключевому слову и записать логику поиска.

Для этого мне нужно разбить строку поиска на "and", "or" и "not" и вспомнить, какой разделитель использовался в каждой точке.Я хочу преобразовать его в хеш: {and: 'gis', and: 'gjs', not: 'gkp'}.

Какой лучший способ сделать это?Или есть лучший способ обработать такую ​​строку поиска?

1 Ответ

0 голосов
/ 22 мая 2018
splitted = "hello and world or jump not read".split(/( and | or | not )/)
# => ["hello", " and ", "world", " or ", "jump", " not ", "read"]

splitted = splitted.unshift('and') unless splitted[0] == 'and'
# => ["and". "hello", " and ", "world", " or ", "jump", " not ", "read"]

splitted.each_slice(2).to_h
# => {"and"=>"hello", " and "=>"world", " or "=>"jump", " not "=>"read"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...