Что такое оператор "= ~" в Ruby? - PullRequest
53 голосов
/ 12 июня 2010

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

Ответы [ 7 ]

46 голосов
/ 12 июня 2010

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

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

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

16 голосов
/ 12 июня 2010

С ruby-doc :

str =~ obj => fixnum or nil

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

"cat o' 9 tails" =~ /\d/   #=> 7
"cat o' 9 tails" =~ 9      #=> false
4 голосов
/ 15 сентября 2015

Как уже говорилось в других ответах, =~ - это регулярное выражение против оператора совпадения строк.

Примечание: оператор =~ не является коммутативным

Обратите внимание на примечание ниже с сайта ruby ​​doc , как я уже виделтолько первая форма

str =~ regexp 

используется в других ответах:

Примечание: str =~ regexp отличается от regexp =~ str.Строки, захваченные из именованных групп захвата, присваиваются локальным переменным только во втором случае.

Вот документация для второй формы: ссылка

4 голосов
/ 12 июня 2010

Ну, ссылка верна, это оператор "соответствует этому регулярному выражению".

if var =~ /myregex/ then something end
2 голосов
/ 12 июня 2010

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

1 голос
/ 13 июня 2010

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

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

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

0 голосов
/ 12 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...