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