У меня есть case
в моем коде Ruby, который в основном пытается сопоставить строку несколькими способами и соответственно делать с ней разные вещи, вроде как:
case inst
when Rx_inst1
(some function)
when Rx_inst2
(some other function)
end
Это прекрасно работает (я не публикую RegEx, так как он очень, очень длинный и хорошо работает). Однако, когда я попытался реализовать следующую модификацию, чтобы даже когда RegEx соответствовал строке, условие не выполняется, если оно содержит подстроку:
case inst
when Rx_inst1
(some function)
when Rx_inst2 && !/dom\./
(some other function)
end
it Rx_inst2
прекратил сопоставление inst
, когда оно было равно Nm. Friese = Fryzyjczyk, koń fryzyjski
или любой другой тип строки, с которой он соответствовал ранее.
Я получил точно такой же результат с && /dom\./
и && inst.include?('dom.')
, которые, согласно другим ответам, являются правильным синтаксисом. Что я делаю не так?