这个红宝石做了什么?

时间:2011-01-08 05:28:35

标签: ruby-on-rails ruby

unless (place =~ /^\./) == 0

我知道除非它像if not,但条件是什么?

2 个答案:

答案 0 :(得分:12)

=~表示匹配正则表达式

/^\./是正则表达式:

/.../是正则表达式的分隔符

^匹配字符串或行的开头(\A仅匹配字符串的开头)

\.匹配文字。

答案 1 :(得分:9)

检查字符串place是否以句点.开头。

考虑一下:

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

在这种情况下,没有必要使用== 0place =~ /^\./足以满足条件:

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

编辑:/^\./是正则表达式。开始和结束斜杠表示正则表达式,将重要位留给^\.。第一个字符^标记“字符串/行的开头”,\.文字字符.,因为点字符通常被视为特殊字符在正则表达式中。

要详细了解正则表达式,请参阅Wikipedia或优秀的regular-expressions.info网站。