Что “= ~” оператор в Ruby?

Я видел это на скринкасте и не мог выяснить, каково это было. Таблицы ссылок просто заваливают его в другими операторами как общий оператор соответствия шаблона.

53
задан CCSab 11 June 2010 в 09:02
поделиться

6 ответов

Сопоставляет строку с регулярным выражением.

'hello' = ~ / ^ h / # => 0

Если совпадений нет, возвращается nil . Если вы передадите ему недопустимые аргументы (т. Е. Левая или правая части неверны), он либо выдаст TypeError , либо вернет false .

46
ответ дан 7 November 2019 в 08:48
поделиться

Ну, ссылка правильная, это оператор "matches this regex".

if var =~ /myregex/ then something end
4
ответ дан 7 November 2019 в 08:48
поделиться

Из ruby-doc :

str =~ obj => fixnum или nil

Match-If obj is a Regexp, использует его как шаблон для сравнения с str, и возвращает позицию смещения, с которой начинается совпадение, или nil, если совпадения нет. В противном случае вызывается obj.=~, передавая str в качестве аргумента. По умолчанию =~ в Object возвращает false.

"cat o' 9 tails" =~ /\d/   #=> 7
"cat o' 9 tails" =~ 9      #=> false
16
ответ дан 7 November 2019 в 08:48
поделиться

Я полагаю, что это оператор сопоставления шаблонов, используемый в regex.

0
ответ дан 7 November 2019 в 08:48
поделиться

Сопоставление строк регулярного выражения. Вот подробный список операторов: http://phrogz.net/programmingruby/tut_expressions.html#table_7.1

2
ответ дан 7 November 2019 в 08:48
поделиться

Согласование строк регулярного выражения:

ставит true, если url =~ /google.com/

Вы можете прочитать '=~' как 'соответствует'.

1
ответ дан 7 November 2019 в 08:48
поделиться
Другие вопросы по тегам:

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