Vi esto en un screencast y no pude entender de qué se trataba. Las hojas de referencia solo se amontonan con otros operadores como un operador de coincidencia de patrones general.¿Qué es el operador "= ~" en Ruby?
Respuesta
Coincide con la cadena a una expresión regular.
'hello' =~ /^h/ # => 0
Si no hay ninguna coincidencia, volverá nil
. Si le pasa argumentos no válidos (es decir, los lados izquierdo y derecho no son correctos), lanzará un TypeError
o devolverá false
.
Bueno, la referencia es correcta, es el operador "coincide con esta expresión regular".
if var =~ /myregex/ then something end
Creo que este es un operador de coincidencia de patrones utilizado con expresiones regulares.
Cadena de expresión regular que coincide. He aquí una lista detallada de los operadores: http://phrogz.net/programmingruby/tut_expressions.html#table_7.1
De ruby-doc:
str =~ obj => fixnum or nil
Match-Si obj es una expresión regular, utilizarlo como un patrón que corresponda contra str y devuelve la posición de desplazamiento del el partido comienza, o nulo si no hay coincidencia. De lo contrario, invoca obj. = ~, Pasando str como argumento. El predeterminado = ~ en Object devuelve falso.
"cat o' 9 tails" =~ /\d/ #=> 7
"cat o' 9 tails" =~ 9 #=> false
"devuelve la posición en la que se inicia el partido", es lo importante para mí :) He estado rastreando a Google en busca de una respuesta ... ¡la encontré aquí gracias! –
¿Por qué el segundo ejemplo devuelve falso? ¿Es porque '9' no es una cadena? –
regular cadena de expresión coincidente:
pone cierto si url = ~ /google.com/
Usted puede leer '= ~' como 'se emparejan'.
Como las otras respuestas ya indicadas, =~
es el operador de expresión regular frente a string string.
Nota: El operador =~
no es conmutativa
Por favor, considere la siguiente nota de la ruby doc site, como he visto sin embargo, sólo la primera forma
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 de la segunda forma: link
- 1. ¿Qué significa el operador || = en Ruby?
- 2. ¿Qué hace el operador% en Ruby en N% 2?
- 3. ¿Cuál es el operador de comparación! = ~ En ruby?
- 4. ¿Cuál es el punto del operador unario plus en Ruby?
- 5. ¿Cuál es el operador <= en las clases de Ruby?
- 6. ¿Qué significa el operador del signo de interrogación en Ruby?
- 7. ¿qué es el operador "??" en C#?
- 8. ¿Cómo se llama el operador &: en Ruby?
- 9. ¿Qué hace el operador (unario) * en este código de Ruby?
- 10. '|| =' operador en Ruby
- 11. C# ?? operador en Ruby?
- 12. ¿qué es "$:" en ruby?
- 13. ¿Qué es el equivalente "sys.stdout.write()" en Ruby?
- 14. javascript: ¿Qué es NO? (!! operador)
- 15. ¿Qué es "p" en Ruby?
- 16. ¿Qué es "para" en Ruby
- 17. ¿Qué es "principal" en Ruby?
- 18. ¿Qué es un operador sobrecargado en C++?
- 19. ¿Qué es -> * operador en C++?
- 20. ¿Qué es el operador "" que vi en GoingNative2012
- 21. Comprender el "||" O operador en If conditionals en Ruby
- 22. Prioridad del operador para And/&& en Ruby
- 23. ¿Qué significa el operador C# =>?
- 24. ¿Cuál es el significado del operador de tubo + signo de porcentaje en Ruby, como en "% |"?
- 25. ¿Por qué Ruby no Symbol # = ~ (operador de concordancia regex)?
- 26. ¿Cuál es el operador & = para en Java
- 27. ¿Cuál es el operador @ en MATLAB?
- 28. pregunta sobre anulación + operador en ruby
- 29. ¿Por qué el operador% se conoce como el operador "módulo" en lugar del operador "restante"?
- 30. ¿Por qué anular el operador()?
buscarlo en http://www.ruby-doc.org/core/ –
@ user97370: Muy a menudo documentos de rubí se utilizan como una impertinente solución para responder todas las preguntas sin darse cuenta de que ruby docs no siempre es un sitio fácil de entender.Muy a menudo (la mayoría de las veces) empiezo con ruby docs, no entiendo las explicaciones encriptadas y anémicas de Google, solo para descubrir que tampoco hay soluciones en Google. Uno no simplemente busca en Google "Ruby = ~" o "Ruby = ~ method" o "Ruby = ~ operator" para obtener una respuesta. Sería agradable ver a menos personas arrojar documentos de rubí como una solución perezosa y para ver más respuestas en profundidad que realmente ayudan. – Padawan