我正在使用以下正则表达式在rails模型上添加验证检查:
validates :reference, :presence => true, :format => { :with => /^[a-zA-Z0-9_. ]*$/i }
此检查将匹配任何非字母数字字符,并忽略下划线和点。
在rubular.com上进行测试时,正则表达式无法匹配任何上述模式。相反,使用此正则表达式进行rubular匹配:
/[^a-zA-Z0-9_. ]/i
任何人都知道两者之间差异的原因是什么?
由于
答案 0 :(得分:2)
^
有两个含义。在括号外使用时,表示“行以”开头。在括号内使用时,意味着匹配的是相反的。我觉得我不清楚:[a-z]
会匹配每个小写字母,而[^a-z]
只会匹配小写字母。