开发者

ruby operator "=~" [duplicate]

This question already has answers here: What is the "=~" operator in Ruby? (7 answers) Closed 8 years ago.

In ruby开发者_开发知识库, I read some of the operators, but I couldn't find =~. What is =~ for, or what does it mean? The program that I saw has

regexs = (/\d+/)
a = somestring
if a =~ regexs

I think it was comparing if somestring equal to digits but, is there any other usage, and what is the proper definition of the =~ operator?


The =~ operator matches the regular expression against a string, and it returns either the offset of the match from the string if it is found, otherwise nil.

/mi/ =~ "hi mike" # => 3 
"hi mike" =~ /mi/ # => 3 

"mike" =~ /ruby/ # => nil 

You can place the string/regex on either side of the operator as you can see above.


This operator matches strings against regular expressions.

s = 'how now brown cow'

s =~ /cow/ # => 14
s =~ /now/ # => 4
s =~ /cat/ # => nil

If the String matches the expression, the operator returns the offset, and if it doesn't, it returns nil. It's slightly more complicated than that: see documentation here; it's a method in the String class.


=~ is an operator for matching regular expressions, that will return the index of the start of the match (or nil if there is no match).

See here for the documentation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜