简体   繁体   中英

What does the !~ method do with String in Ruby

From @sawa's answer at: https://stackoverflow.com/a/21892359/226255

What does !~ do?

Example:

re = /[^\d.,]/
"0.0687987167581341,0.120311605902415,89.8399554017928,198.151088713489" !~ re

I couldn't find any documentation in String or Regexp

The method !~ is the inverse of =~ , that is !(=~) . From the Ruby Object#!~ documentation :

[obj !~ other ] returns true if two objects do not match (using the =~ method), otherwise false.

So, since String#=~ performs a string/regex match returning the index of the first match if matched and nil otherwise, String#!~ return false if matched and true otherwise.

It means the regex does not match. It's the inverse of =~

Also mentioned here: Does Ruby regular expression have a not match operator like "!~" in Perl?

Apparently it's not documented for some reason.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM