如何在Perl正则表达式中允许文字点?

时间:2010-04-15 11:44:36

标签: regex perl

我使用此条件检查值是否为字母数字值:

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

如何修改此正则表达式以考虑值中可能的点.而不接受任何其他特殊字符?

5 个答案:

答案 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+.]\.*$/;