Каков правильный синтаксис для метода, который проверяет строку на шаблон и возвращает TRUE или FALSE, если regex соответствует?
Основная идея:
def has_regex?(string)
pattern = /something/i
return string =~ pattern
end
Вариант использования:
if has_regex?("something")
# woohoo
else
# nothing found: panic!
end
If you want the put the pattern in a method, you can just do
def has_my_pattern(st)
st =~ /pattern/
end
Or, perhaps better, put the pattern in a class variable instead?
Ваш код выглядит неплохо, но вы могли бы написать его еще меньше.
Возвращаемое значение Строка#=~
ведет себя таким образом:
nil
, если шаблон не совпадает с В Ruby все, кроме nil
и false
ведут себя как true
в условном операторе, так что вы можете просто записать
if string=~ pattern
# do something
else
# panic
end