2011-01-08 26 views

risposta

9

Controlla se la stringa place inizia con un periodo ..

Considerate questo:

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

In questo caso, non sarebbe necessario usare == 0. place =~ /^\./ basterebbe come condizione:

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

EDIT: /^\./ è un'espressione regolare. Le barre iniziali e finali indicano che è è un'espressione regolare, lasciando il bit importante a ^\.. Il primo carattere, ^ contrassegna "inizio stringa/riga" e \. è il letterale carattere ., poiché il carattere punto è normalmente considerato un carattere speciale nelle espressioni regolari.

Per ulteriori informazioni sulle espressioni regolari, vedere Wikipedia o l'eccellente sito Web regular-expressions.info.

+0

Come funziona ... cosa significa = ~ /^\./ mean – Trace

+0

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

+0

'= ~' è per la corrispondenza delle espressioni regolari .... '^'significa inizio della stringa ... e' \ .' è per il punto (che è un carattere speciale, quindi deve essere sfuggito) .... l'espressione è racchiusa tra '/ /' – st0le

11

=~ significa corrisponde all'espressione regolare

/^\./ è un'espressione regolare:

/.../ sono i delimitatori per l'espressione regolare

^ corrisponde all'inizio della stringa o di una linea (\A corrisponde l'inizio solo la stringa)

\. corrisponde a un valore letterale.

+1

'^' corrisponde all'inizio di una linea o di una stringa. '\ A' corrisponde all'inizio di una stringa. – Zabba

+0

Grazie Zabba, non lo sapevo. – richo