logicos - operadores logico ruby
¿Qué es el operador “= ~” en Ruby? (7)
Bueno, la referencia es correcta, es el operador "coincide con esta expresión regular".
if var =~ /myregex/ then something end
Vi esto en un screencast y no pude averiguar qué era. Las hojas de referencia simplemente lo acumulan con otros operadores como un operador de coincidencia de patrón general.
Coincidencia de cadenas de expresiones regulares. Aquí hay una lista detallada de operadores: http://phrogz.net/programmingruby/tut_expressions.html#table_7.1
Coincidencia de cadenas de expresiones regulares:
se pone verdadero si url = ~ /google.com/
Puedes leer ''= ~'' ya que ''es coincidente''.
Como ya se ha indicado en las otras respuestas, =~
es el operador de coincidencia de expresión regular vs cadena.
Nota: El operador =~
no es conmutativo
Considere la siguiente nota del sitio de ruby doc , ya que he visto todavía el primer formulario.
str =~ regexp
utilizado en las otras respuestas:
Nota:
str =~ regexp
no es lo mismo queregexp =~ str
. Las cadenas capturadas de los grupos de captura nombrados se asignan a las variables locales solo en el segundo caso.
Aquí está la documentación para el segundo formulario: link
Creo que este es un operador de coincidencia de patrones utilizado con expresiones regulares.
De ruby-doc :
str =~ obj => fixnum or nil
Coincidencia: si obj es una expresión regular, utilícela como un patrón para hacer coincidir contra str, y devuelve la posición de compensación en que comienza la coincidencia, o nula si no hay coincidencia. De lo contrario, invoca obj. = ~, Pasando str como un argumento. El valor predeterminado = ~ en Objeto devuelve falso.
"cat o'' 9 tails" =~ //d/ #=> 7
"cat o'' 9 tails" =~ 9 #=> false
Hace coincidir la cadena con una expresión regular.
''hello'' =~ /^h/ # => 0
Si no hay coincidencia, devolverá nil
. Si le pasa argumentos no válidos (es decir, los lados izquierdo o derecho no son correctos), lanzará un TypeError
o devolverá false
.