Я видел это на скринкасте и не мог понять, что это было. Справочные листы просто складывают его с другими операторами в качестве общего оператора сопоставления шаблонов.
Что такое оператор "= ~" в Ruby?
Ответ 1
Соответствует строке регулярному выражению.
'hello' =~ /^h/ # => 0
Если совпадения нет, возвращается nil
. Если вы передадите ему неверные аргументы (т.е. Левая или правая стороны неверны), он либо выбросит TypeError
, либо вернет false
.
Ответ 2
От ruby-doc:
str =~ obj => fixnum or nil
Match-If obj является Regexp, используйте его как шаблон для сопоставления с str и возвращает позицию смещения, которую запускает матч, или nil, если нет совпадения. В противном случае вызывает obj. = ~, Передавая str в качестве аргумента. Значение по умолчанию = ~ в объекте возвращает false.
"cat o' 9 tails" =~ /\d/ #=> 7
"cat o' 9 tails" =~ 9 #=> false
Ответ 3
Ну, ссылка правильная, это оператор "соответствует этому регулярному выражению".
if var =~ /myregex/ then something end
Ответ 4
Как уже было сказано в других ответах, =~
- это регулярное выражение vs string match operator.
Примечание. Оператор =~
не является коммутативным
Пожалуйста, обратите внимание на примечание ниже на сайт ruby doc, поскольку я видел только первую форму
str =~ regexp
используется в других ответах:
Примечание:
str =~ regexp
не совпадает сregexp =~ str
. Выбранные строки из названных групп захвата назначаются локальным переменным только в второй случай.
Вот документация для второй формы: ссылка
Ответ 5
Строка регулярных выражений. Вот подробный список операторов: http://phrogz.net/programmingruby/tut_expressions.html#table_7.1
Ответ 6
Строка регулярных выражений:
ставит true, если url = ~/google.com/
Вы можете прочитать '= ~' как 'соответствует'.
Ответ 7
Я считаю, что это оператор сопоставления шаблонов, используемый с регулярным выражением.