试试: ^[a-z](_?([a-z\d]+_)*[a-z\d])?$未测试!

解决方案 »

  1.   

    测试了一下, 应该这样: /^[a-z](_?([a-z\d]+_)*[a-z\d]+)?$/
    --------------<?php$str_arr = array(
    'a_fda_43',
    'fdsafda',
    '432423',
    'fdwq4i23',
    '_fdrew',
    '_fdsa_fdsa',
    'fda__fd',
    '432fdsa',
    'fds423_',
    'dfs_f_fd_');$pattern = "/^[a-z](_?([a-z\d]+_)*[a-z\d]+)?$/i";foreach ($str_arr as $value)
    {
    if (preg_match($pattern, $value))
    echo "{$value}: yes<br />";
    else
    echo "{$value}: no<br />";
    }?>