2011-01-08 26 views

Respuesta

9

Comprueba si la cadena place comienza con un período ..

Considera:

p ('.foo' =~ /^\./) == 0 # => true 
p ('foo' =~ /^\./) == 0 # => false 

En este caso, no sería necesario utilizar == 0. place =~ /^\./ bastaría como una condición:

p '.foo' =~ /^\./ # => 0 # 0 evaluates to true in Ruby conditions 
p 'foo' =~ /^\./ # => nil 

EDIT: /^\./ es una expresión regular. Las barras de inicio y final denotan que es una expresión regular, dejando el bit importante en ^\.. El primer carácter, ^ marca "inicio de cadena/línea" y \. es el literal carácter ., ya que el carácter de punto normalmente se considera un carácter especial en las expresiones regulares.

Para leer más sobre expresiones regulares, vea Wikipedia o el excelente sitio web regular-expressions.info.

+0

¿Cómo se hace eso ... qué significa = ~ /^\./ mean – Trace

+0

http://perldoc.perl.org/perlre.html – SilverbackNet

+0

'= ~' es para la expresión regular que empareja .... '^'significa inicio de cadena ... y' \ .' es para el período (que es un carácter especial, por lo tanto tiene que ser escapado) .... la expresión está encerrada dentro de '/ /' – st0le

11

=~ significa coincidencias de expresiones regulares

/^\./ es una expresión regular:

/.../ son los delimitadores para la expresión regular

^ coincide con el principio de la cadena o de una línea (\A coincide con el principio de solo la cadena)

\. coincide con un literal.

+1

'^' coincide con el inicio de una línea o una cadena. '\ A' coincide con el comienzo de una cadena. – Zabba

+0

Gracias Zabba, no lo sabía. – richo