2015-02-24 51 views
-2

我的Perl脚本只是将您提供的任何输入作为输入,并且我希望通过检查输入字符串的模式使其更健壮。我的输入字符串必须采用格式xxxxx-xxxx-xxxx。我如何检查?如何检查Perl脚本的键盘输入格式?

+1

你确实可以使用正则表达式。你有什么尝试?如果您正在寻找一种通用的操作方法,您可能需要阅读http://perldoc.perl.org/perlintro.html#Regular-expressions – Oesor 2015-02-24 19:05:39

+4

上的介绍文档的正则表达式部分,例如? '退出,除非$ input =〜/^xxxxx-xxxx-xxxx $ /;' – jm666 2015-02-24 19:17:25

+0

根据你对输入做什么,有时候“试图使用它”也是一种很好的验证形式。例如。看看文件是否存在并且可读。等等。 – Sobrique 2015-02-24 19:23:39

回答

1
$foo =~ /^.{5}-.{4}-.{4}\z/s 

例如,它会反复询问值,直到获得有效值。

my $foo; 
while (1) { 
    print("Please provide foo (xxxxx-xxxx-xxxx): "); 
    my $foo = <STDIN>; 
    die("EOF\n") if !defined($foo); 
    chomp($foo); 
    last if $foo =~ /^.{5}-.{4}-.{4}\z/s; 
    print("Invalid input\n"); 
} 
+0

请给解释添加解释 – Saifur 2015-02-24 22:38:09