加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

How-To Perl递归正则表达式

发布时间:2020-12-16 06:06:47 所属栏目:大数据 来源:网络整理
导读:我有一个我需要测试的设备的输出,主要是响应是一行,但有时它是两行.我用一个简单的正则表达式解析一行或两行 if ($prompt =~ /(s.*?)rn(.*)/){ Note('Multiline '.$string); TestPrompt($string,$1); TestPrompt($string,$2);}else{ TestPrompt($string,$
我有一个我需要测试的设备的输出,主要是响应是一行,但有时它是两行.我用一个简单的正则表达式解析一行或两行

if ($prompt =~ /(s.*?)rn(.*)/)
{
   Note('Multiline '.$string);
   TestPrompt($string,$1);
   TestPrompt($string,$2);
}
else
{
   TestPrompt($string,$prompt);
}

但是,如果响应超过两行呢?这段代码无法处理额外的行,我想在我的设计中保持健壮.有没有办法从正则表达式中捕获用于foreach?

解决方法

为什么不使用split函数来执行此操作?这是一个 link to some examples的用法.对于您的示例,为什么不这样做:

my @lines=split /rn/,$prompt;

Note("Multiline $string") if @lines>1; 

foreach my $line (@lines) 
{ 
   TestPrompt($string,$line);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读