Как разобрать строку поиска в кавычках с помощью регулярных выражений? - PullRequest
0 голосов
/ 14 июля 2010

Учитывая строку поиска "автомобили, кошки и собаки, рыба," молотки "", что является лучшим регулярным выражением для захвата всех условий поиска.Он должен поддерживать одинарные и двойные кавычки.Ruby-дружественный ответ, если это возможно.

1 Ответ

8 голосов
/ 14 июля 2010

Используя String#scan:

irb> "cars 'cats and dogs' fish 'hammers'".scan /'.+?'|".+?"|[^ ]+/
  => ["cars", "'cats and dogs'", "fish", "'hammers'"]

Да, и избавиться от окружающих кавычек в результате:

irb> ["cars", "'cats and dogs'", "fish", "'hammers'"].map { |s| s.gsub /^['"]|['"]$/, '' }
  => ["cars", "cats and dogs", "fish", "hammers"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...