Я использую это условие проверить, является ли значение алфавитно-цифровыми значениями:
$value =~ /^[a-zA-Z0-9]+$/
Как я могу изменить этот regex для составления возможной точки .
в значении, не принимая никакие другие специальные символы?
Не забудьте параметр / i
и класс символов \ d
.
$value =~ /^[a-z\d.]+$/i
Если вы не хотите разрешать использование каких-либо символов, кроме разрешенных в классе символов, вам не следует использовать привязку конца строки $
, поскольку это допускает завершающуюся новую строку. Вместо этого используйте абсолютную привязку конца строки \ z
:
$value =~ /^[a-z0-9.]+\z/i;
Использование alnum
класса символов Posix , на один символ короче :)
value =~ /^[[:alnum:].]+$/;
Посмотрите на регулярные выражения perl
\w Match "word" character (alphanumeric plus "_")
$value =~ /^[\w+.]\.*$/;