Ruby: каков правильный синтаксис для булевской переменной regex метод?

Каков правильный синтаксис для метода, который проверяет строку на шаблон и возвращает TRUE или FALSE, если regex соответствует?

Основная идея:

def has_regex?(string)
    pattern = /something/i
    return string =~ pattern
end

Вариант использования:

if has_regex?("something")
    # woohoo
else
    # nothing found: panic!
end
17
задан Tim Pietzcker 8 February 2010 в 09:17
поделиться

2 ответа

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?

-1
ответ дан 30 November 2019 в 10:00
поделиться

Ваш код выглядит неплохо, но вы могли бы написать его еще меньше.

Возвращаемое значение Строка#=~ ведет себя таким образом:

  • nil, если шаблон не совпадает с
  • положением в строке, где начинается соответствующее слово

В Ruby все, кроме nil и false ведут себя как true в условном операторе, так что вы можете просто записать

if string=~ pattern
  # do something
else
  # panic
end
15
ответ дан 30 November 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: