2011-01-08 51 views

Trả lời

9

Kiểm tra xem chuỗi place có bắt đầu bằng khoảng thời gian . hay không.

Hãy xem xét điều này:

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

Trong trường hợp này, nó sẽ không cần phải sử dụng == 0. place =~ /^\./ sẽ đủ như một điều kiện:

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

EDIT: /^\./ là một biểu thức chính quy. Dấu gạch chéo bắt đầu và kết thúc biểu thị rằng nó cụm từ thông dụng, để lại bit quan trọng thành ^\.. Ký tự đầu tiên, ^ đánh dấu "bắt đầu chuỗi/dòng" và \.chữ ký tự ., vì ký tự dấu chấm thường được coi là ký tự đặc biệt trong cụm từ thông dụng.

Để đọc thêm về cụm từ thông dụng, hãy xem Wikipedia hoặc trang web tuyệt vời regular-expressions.info.

+0

Làm thế nào để thực hiện điều đó ... nghĩa là gì = ~ /^\./ có nghĩa là – Trace

+0

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

+0

'= ~' là để đối sánh cụm từ thông dụng .... '^'có nghĩa là bắt đầu chuỗi ... và' \ .' là dấu chấm (là ký tự đặc biệt, do đó phải được thoát) .... biểu thức được đặt trong '/ /' – st0le

11

=~ nghĩa trận đấu regex

/^\./ là một biểu thức chính quy:

/.../ là delimiters cho regex

^ phù hợp với sự khởi đầu của chuỗi hoặc của một dòng (\A phù hợp khi bắt đầu chỉ có chuỗi)

\. khớp với chữ.

+1

'^' khớp với sự bắt đầu của một dòng hoặc một chuỗi. '\ A' khớp với đầu chuỗi. – Zabba

+0

Cảm ơn Zabba, tôi không biết điều đó. – richo