Есть ли регулярное выражение для разделения логической строки логическим оператором, но не в кавычках
пример: boolean_string = "'larsen and turbo' and fullsta'ck or \"ruby\" and \"ruby or rails\""
ожидаемый результат: ['larsen and turbo', and, fullsta'ck, or, ruby, and, ruby or rails]
В настоящее время пытается использовать приведенный ниже фрагмент кода, но не может экранировать операторы в кавычках.
boolean_string.split(/\b(and|or)\b/)
Как мне избежать and и or's в кавычках.`





Это может помочь вам:
boolean_string = "'larsen and turbo' and fullsta'ck or \"ruby\" and \"ruby or rails\""
reg = %r{
(?: # outer-group to use "|" for multiple matches
['"]([^'"]+)['"] # words inside quotes
|([\w']+) # other words
)
}xm
boolean_string.scan(reg).flat_map(&:compact) # => ["larsen and turbo", "and", "fullsta'ck", "or", "ruby", "and", "ruby or rails"]