Eri*_*sum 3 regex testing perl prompt functional-testing
我有一个我需要测试的设备的输出,主要是响应是一行,但有时它是两行.我用简单的正则表达式处理一行或两行来处理
if ($prompt =~ /(\s.*?)\r\n(.*)/)
{
Note('Multiline '.$string);
TestPrompt($string, $1);
TestPrompt($string, $2);
}
else
{
TestPrompt($string, $prompt);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果响应超过两行呢?这段代码无法处理额外的行,我想在我的设计中保持健壮.有没有办法从正则表达式中捕获foreach?
为什么不使用该split功能来做这个?以下是一些使用示例的链接.对于您的示例,为什么不这样做:
my @lines=split /\r\n/,$prompt;
Note("Multiline $string") if @lines>1;
foreach my $line (@lines)
{
TestPrompt($string, $line);
}
Run Code Online (Sandbox Code Playgroud)