从Codeigniter中的CI_Form_validation
类,我看到了这个函数:
function alpha_dash($str)
{
return ( ! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE;
}
我认为-
之前的a-z
可能意味着[a-zA-Z]
,但在Google中输入-a-z
并不会产生任何有用的结果。
我想知道[-a-z]
是否与[a-zA-Z]
相同?
提前致谢。
修改
看到i
后,我现在知道[-a-z]
并不代表[a-zA-Z]
。但它是什么?最后已经有-
。
答案 0 :(得分:7)
没有。它的意思是“连字符或a和z之间的任何字母”。
答案 1 :(得分:7)
不,不是。但是你的正则表达式使用正则表达式末尾的i
修饰符来表示忽略。
所以/[a-z]/i
和/[a-zA-Z]/
是相同的事情
答案 2 :(得分:4)
-a-z
将是连字符( - )和a和z之间的任何字母。但是后来他们在表达中再次得到了它本身是多余的。
答案 3 :(得分:2)
[a-z]
与[a-zA-Z]
,但不同,当然它们是相同的。 [-a-z]
只是一个连字符,小写字母为a-z,/i
使其为小写+大写。
模式分隔符后面的“i”表示不区分大小写的搜索
答案 4 :(得分:2)
除了@David和@Ryan给出的答案之外,我还想补充一点,如果你正在寻找等于[a-zA-Z]
的东西,那么它将是/^[a-z]$/i
其中i
1}}表示不区分大小写。
答案 5 :(得分:1)
据我所知,但我不是正则表达专家,这是不一样的。
[a-zA-Z]
表示“任何大写和小写字母字符”
而
[-a-z]
表示“任何减号或小写字母字符”
答案 6 :(得分:1)
[-a-z]
将匹配连字符(-
)或任何小写字母
[a-zA-Z]
将匹配任何小写或大写字母