Perl 提取文本中需要的值

文本格式如下,判断lu_name返回的结果是不是Norecords,提取lu_name对应的plu_name,最后返回数组lu_name跟plu_name.下面这段文本最... 文本格式如下, 判断lu_name返回的结果是不是No records, 提取lu_name对应的plu_name,最后返回数组lu_name跟plu_name.
下面这段文本最后返回结果应该是 BBB, zzz和BBB,yyy
请问大神们用perl怎么实现啊?
第一个AAA 判断是No records, 不用提取了。
第二个BBB 对应的plu_name分别是zzz跟yyy,
返回两个数组,BBB, zzz和BBB,yyy

lu_name = AAA
----------------------------------------------------------
list_options = FIRST_IN_LIST
No records found matching this query.

----------------------------------------------------------
lu_name = BBB
----------------------------------------------------------
list_options = FIRST_IN_LIST

plu_alias = ""
plu_name = zzz
description = ""

plu_alias = ""
plu_name = yyy
description = ""
----------------------------------------------------------
lu_name = TEST
----------------------------------------------------------
list_options = FIRST_IN_LIST
No records found matching this query.
展开
 我来答
连续用6a43aa2
2019-03-01 · TA获得超过3747个赞
知道大有可为答主
回答量:7283
采纳率:72%
帮助的人:612万
展开全部
#!/sw/bin/perl
$txt = <<TXT;
lu_name = AAA
----------------------------------------------------------
list_options = FIRST_IN_LIST
No records found matching this query.
----------------------------------------------------------
lu_name = BBB
----------------------------------------------------------
list_options = FIRST_IN_LIST
plu_alias = ""
plu_name = zzz
description = ""
plu_alias = ""
plu_name = yyy
description = ""
----------------------------------------------------------
lu_name = TEST
----------------------------------------------------------
list_options = FIRST_IN_LIST
No records found matching this query. 
TXT
undef @list;
#分组
my @txt = split(/\nlu_name\s+\=\s+/,$txt);
#不要No records
my @lu = grep !/No records/,@txt;
#获取lu plu
my $i = 0;
my $ii = $#lu;
while($i <= $ii){
 my @luplu = split(/\n/,$lu[$i]);
 my $lu = $luplu[0];
 my $o = 0;
 my $oo = $#luplu;
 while($o <= $oo){
  if($luplu[$o] =~/^plu_name\s+\=\s+(\w+)/){
   my $plu = $1;
   push(@list,"$lu,$plu") 
  }
  $o++;
 }
 $i++;
}
print"@list\n";

望采纳!

顺德元7
2019-02-28 · TA获得超过400个赞
知道小有建树答主
回答量:414
采纳率:50%
帮助的人:56万
展开全部
你文本是什么样子的,需要处理为什么样的结果,详细说清除了才可能给你写代码。
如果自己会写,只是工作中遇到一些问题,希望详细描述你遇到的问题情况,以便大家帮你出主意。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式