我正在使用以下正则表达式在rails模型上添加一个验证检查:
validates :reference, :presence => true, :format => { :with => /^[a-zA-Z0-9_. ]*$/i }
此检查将匹配任何非字母数字字符,并忽略下划线和点。
在rubular.com上测试时,正则表达式无法匹配上面提到的任何模式。相反,使用下面的regexp进行循环匹配:
/[^a-zA-Z0-9_. ]/i
有人知道两者之间的差异背后的原因是什么吗?
谢谢
发布于 2012-03-13 05:51:11
^有两层含义。当在括号外使用时,它表示“行以开头”。当在括号内使用时,它意味着匹配的内容是相反的。我觉得我不太清楚:[a-z]将匹配所有小写字母,而[^a-z]将匹配任何小写字母。
https://stackoverflow.com/questions/9675227
复制相似问题