Мне нужно регулярное выражение для проверки строки, которая имеет длину более 2 символов, первый символ должен быть алфавитным, последний символ должен быть '_'.
И как мне прописать только первый символ?Спасибо.
Для соответствия
preg_match( "/^[a-z].+_$/i", $str );
В верхнем регистре первая буква
ucfirst( $str );
Чтобы сопоставить ввод не менее чем с 3-мя символами, при этом первым должен быть алфавит в верхнем регистре и последний знак начала подчеркивания:
^[A-Z].+_$
Чтобы разрешить любой алфавит в начале, вы можете использовать:
^[A-Za-z].+_$
Попробуйте:
/^[a-zA-Z].+_$/
Примечание: вместо .+ вы можете использовать [some allowed chars]+
.+
[some allowed chars]+
Вы также можете сделать это следующим образом (может сохранить дальнейшее регулярное выражение, сглаживающее строку):
if ((strlen($str) < 3) || !ctype_alpha($str[0]) || (strrchr($str, '_') != '_')) { echo 'Invalid string'; } else { $str = ucfirst($str); }