我尝试验证路径,如果路径与正则表达式不匹配,那么我应用了一个逻辑。我得到了以下预期结果:
path = 'banner/gwd_preview_/index.html'
/^__MACOSX/.match(path).nil? and /gwd_preview_/.match(path).nil?
# => false
但是当我将正则表达式验证存储在变量中时:
is_valid_path = /^__MACOSX/.match(path).nil? and gwd_preview_/.match(path).nil?
# => false
并调用is_valid_path
的结果,我得到true
:
is_valid_path # => true
为什么会这样?
答案 0 :(得分:3)
=
的优先级高于and
。首先,您已将is_valid_path
的结果分配给nil?
,结果为true
。然后第二个nil?
返回false
。然后结合false
。