带有下划线正则表达式的字母数字

时间:2011-03-08 15:59:12

标签: php regex

我正在扩展CodeIgniter表单验证库以检查带有下划线不包括短划线的Alpha数字值。但我对正则表达式模式很新,并希望得到一些帮助...

目前,alpha_numeric CI具有:

return ( ! preg_match("/^([a-z0-9])+$/i", $str)) ? FALSE : TRUE;

对于alpha_dash,CI有:

return ( ! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE;

我正在创建'alpha_underscore'(再次使用带下划线的字母数字):

这是对的吗?

return ( ! preg_match("/^([a-z0-9_])+$/i", $str)) ? FALSE : TRUE;

我很困惑为什么'alpha_dash'模式的开头和结尾有' - '

2 个答案:

答案 0 :(得分:4)

字符类[-a-z0-9_-][a-z0-9_-][-a-z0-9_]相同。

其中一个-可以删除。

答案 1 :(得分:3)

角色刚刚重复。你可以删除它的一个实例,正则表达式应该可以正常工作。