免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: life382
打印 上一主题 下一主题

动脑的机会来了 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2007-09-25 16:04 |只看该作者
原帖由 life382 于 2007-9-25 16:00 发表
啊。。我不是写着要读取kavset - 0 error(s), 1 warning(s)这一串嘛


这倒是可以做到,见笑见笑

if ($line =~ m{kavset - (\d+) error\(s\), (\d+) warning\(s\)})

论坛徽章:
0
42 [报告]
发表于 2007-09-25 16:05 |只看该作者

回复 #40 life382 的帖子

\d+
带个加号,呵呵,建议你看下书上的正则表达式

论坛徽章:
0
43 [报告]
发表于 2007-09-25 16:05 |只看该作者

  1. use strict;

  2. my $project;
  3. my $configuration;
  4. my $error;
  5. my $warning;
  6. my $logfile = "Log.html";

  7. open LOGFILE, "<$logfile" or die "$!\n";

  8. while (my $line = <LOGFILE>) {
  9.         chomp $line; # and print $line;
  10.        
  11.         if ($line =~ m{Project: (\w+), Configuration: (\w+\|\w+)}) {
  12.                 $project = $1 if defined $1;
  13.                 $configuration = $2 if defined $2;
  14.                 print "Project = $project\n";
  15.                 print "Configuration = $configuration\n";
  16.         }
  17.         if ($line =~ m{kavset - (\d+) error\(s\), (\d+) warning\(s\)}) {
  18.                 $error = $1 if defined $1;
  19.                 $warning = $2 if defined $2;
  20.                 print "Error = $error\n";
  21.                 print "Warnings = $warning\n";
  22.         }
  23. }

  24. ---------------------------

  25. <html>
  26. <head>
  27.         <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
  28. </head>
  29. <body>
  30. <h3>Rebuild started: Project: kavset, Configuration: Release|Win32</h3>
  31. <h3>kavset - 0 error(s), 1 warning(s)</h3>
  32. </body>
  33. -----------------------
  34. >perl -w test.pl
  35. Project = kavset
  36. Configuration = Release|Win32
  37. Error = 0
  38. Warnings = 1
  39. >Exit code: 0
复制代码

论坛徽章:
0
44 [报告]
发表于 2007-09-25 16:06 |只看该作者
这帖都能火,不知道偶们flw老大做何感想

论坛徽章:
0
45 [报告]
发表于 2007-09-25 16:07 |只看该作者
原帖由 life382 于 2007-9-25 15:55 发表
你的正则表达式太有魔力了
读取kavset - 0 error(s), 1 warning(s)这一串呢

error = 0
warning = 1
我像你上面改的if($str =~m{$project- (\d) error(s), (\d) warning(s)})
不行耶,哪里错了。$pro ...



1. 原字符串中的()要加\来转义
2. 若数字可能大于1位数, 用\d+

论坛徽章:
0
46 [报告]
发表于 2007-09-25 16:07 |只看该作者
原帖由 perljoker 于 2007-9-25 16:06 发表
这帖都能火,不知道偶们flw老大做何感想

主要是这个MM太特殊了........

论坛徽章:
0
47 [报告]
发表于 2007-09-25 16:10 |只看该作者
问题1:好像没读到errors的值
问题2:字符串中的kavset 要用刚才取到的$project变量来用,行不 

ps:得到特殊待遇了……在此谢谢大家了,顺便祝福大家中秋快乐哦

[ 本帖最后由 life382 于 2007-9-25 16:13 编辑 ]

论坛徽章:
0
48 [报告]
发表于 2007-09-25 16:11 |只看该作者
原帖由 hutule110 于 2007-9-25 16:07 发表

主要是这个MM太特殊了........

恩,搞不好,冲破100帖,就算送flw老大的中秋礼物了,娃哈哈

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
49 [报告]
发表于 2007-09-25 16:13 |只看该作者
警告一下 perljoker,不要灌水。
想帮就帮,不想帮就别帮了,楼主和我非亲非故,老扯上我干什么?

论坛徽章:
0
50 [报告]
发表于 2007-09-25 16:14 |只看该作者
perljoker ::这帖都能火 ………… 怎么听得有点变味的感觉。
最后问题,解决一下吧,好过中秋啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP