2011-01-08 15 views

Antwort

9

Es prüft, ob die Zeichenfolge place mit einem Punkt . beginnt.

Bedenken Sie:

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

In diesem Fall wäre es nicht notwendig sein == 0 zu verwenden. place =~ /^\./ würde als Bedingung genügen:

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

EDIT: /^\./ ein regulärer Ausdruck ist. Die Anfangs- und Endstriche geben an, dass es ein regulärer Ausdruck ist, das wichtige Bit zu ^\. zu verlassen. Das erste Zeichen ^ markiert "Start der Zeichenfolge/Zeile" und \. ist Literal Zeichen ., da das Punktzeichen normalerweise als ein Sonderzeichen in regulären Ausdrücken betrachtet wird. Weitere Informationen zu regulären Ausdrücken finden Sie unter Wikipedia oder auf der ausgezeichneten Website regular-expressions.info.

+0

Wie macht es das ... Was bedeutet = ~ /^\./ – Trace

+0

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

+0

'= ~' ist für den regulären Ausdruck passend .... '^'bedeutet Start der Zeichenkette ... und' \ .' ist für die Periode (was ein Sonderzeichen ist, daher muss es maskiert werden) .... der Ausdruck ist eingeschlossen in '/ /' – st0le

11

=~ bedeutet Streichhölzer regex

/^\./ ein regulärer Ausdruck ist:

/.../ sind die Trennzeichen für die regex

^ entspricht dem Anfang des Strings oder einer Zeile (\A entspricht dem Beginn der nur die Zeichenkette)

\. entspricht einem Literal.

+1

'^' stimmt mit dem Anfang einer Zeile oder einer Zeichenfolge überein. '\ A' stimmt mit dem Beginn einer Zeichenfolge überein. – Zabba

+0

Danke Zabba, das wusste ich nicht. – richo