我使用此条件检查值是否为字母数字值:
$value =~ /^[a-zA-Z0-9]+$/
如何修改此正则表达式以考虑值中可能的点.
而不接受任何其他特殊字符?
答案 0 :(得分:24)
$value =~ /^[a-zA-Z0-9.]+$/
答案 1 :(得分:3)
使用alnum
Posix character class,缩短一个字符:)
value =~ /^[[:alnum:].]+$/;
答案 2 :(得分:2)
不要忘记/i
选项和\d
字符类。
$value =~ /^[a-z\d.]+$/i
答案 3 :(得分:1)
如果您不想允许除字符类中允许的字符以外的任何字符,则不应使用$
行结束锚,因为它允许使用尾随换行符。请改为使用绝对字符串结束锚\z
:
$value =~ /^[a-z0-9.]+\z/i;
答案 4 :(得分:-1)
请看perl regular expressions
\w Match "word" character (alphanumeric plus "_")
$value =~ /^[\w+.]\.*$/;