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