正则表达式验证中的行为
Behaviour in regex validation
我尝试验证路径,如果路径与正则表达式不匹配,那么我应用逻辑。我得到以下预期结果:
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
为什么会这样?
=
的优先级高于 and
。首先,您将第一个 nil?
的结果分配给 is_valid_path
,结果是 true
。然后第二个 nil?
返回 false
。连词,则变成了false
.
我尝试验证路径,如果路径与正则表达式不匹配,那么我应用逻辑。我得到以下预期结果:
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
为什么会这样?
=
的优先级高于 and
。首先,您将第一个 nil?
的结果分配给 is_valid_path
,结果是 true
。然后第二个 nil?
返回 false
。连词,则变成了false
.