Как я могу позволить буквальную точку в регулярном выражении Perl?

Я использую это условие, чтобы проверить, является ли значение буквенно-цифровыми значениями:

$value =~ /^[a-zA-Z0-9]+$/

Как я могу изменить это регулярное выражение для учета возможной точки . в значении без принятия каких-либо других специальных символов?

Ответы

Ответ 1

$value =~ /^[a-zA-Z0-9.]+$/

Ответ 3

Не забывайте параметр /i и класс символов \d.

$value =~ /^[a-z\d.]+$/i

Ответ 4

Если вы не хотите разрешать какие-либо символы, кроме тех, которые разрешены в классе символов, вы не должны использовать привязку конца строки $, поскольку это допускает завершающую новую строку. Вместо этого используйте абсолютный привязку конца строки \z:

 $value =~ /^[a-z0-9.]+\z/i;