免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
21 [报告]
发表于 2007-09-25 14:14 |只看该作者
嗯。。唉。。晕乎。这样写法也是不行的,不能解决我的问题。
我想知道,怎么处理读取出来的字串信息,让它是字符串的形式。

论坛徽章:
0
22 [报告]
发表于 2007-09-25 14:19 |只看该作者
哇哈,函数也搞错了,晕。。有篇资料害人,我找perl 去掉空格的函数
喔喔,,那现有什么办法处理呢

论坛徽章:
0
23 [报告]
发表于 2007-09-25 14:24 |只看该作者
说了老半天,还是自个解决了。
我知道原因罗,并不是空格的问题

论坛徽章:
0
24 [报告]
发表于 2007-09-25 14:36 |只看该作者

回复 #21 life382 的帖子

看你的代码,第一行应该打印出
<html>才对,而且没有换行符,也就是下一个循环导致后面的一句会跟在<html>后面
你可以这么写,
  1. print $_;chomp(my $str=$_);
复制代码

至于你后面的代码,感觉你想读取Project: ×××Configuration:×××之间的XXX
觉得用index和substr貌似不太好,可以直接使用正则试试看,比如$str=~/Project: (\w).*?Configuration: (\w)/
然后$pro=$1;$conf=$2;
这是我的理解,不知道对不对

论坛徽章:
0
25 [报告]
发表于 2007-09-25 14:42 |只看该作者
对正则式不熟

论坛徽章:
0
26 [报告]
发表于 2007-09-25 14:47 |只看该作者

回复 #25 cobrawgl 的帖子

偶是对这个mm的需求和错误不熟
貌似lonki的正则很好,偶很崇拜

论坛徽章:
0
27 [报告]
发表于 2007-09-25 15:08 |只看该作者
原帖由 perljoker 于 2007-9-25 14:47 发表
偶是对这个mm的需求和错误不熟
貌似lonki的正则很好,偶很崇拜



.............

这MM刚接触perl吧? 处理字符串的方式似乎还停留在C++的某些方式.

貌似你想提取这一行 Project: xxxxx,Configuration: yyyyy 中的部分信息.
建议把log.htm中的该行贴出来,  然后说明要提取的字段???


PS: 大家都好积极啊, 难道是因为今天中秋...

论坛徽章:
0
28 [报告]
发表于 2007-09-25 15:26 |只看该作者

  1. use strict;

  2. my $project;
  3. my $configuration;
  4. my $logfile = "Log.html";

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

  6. while (my $line = <LOGFILE>) {
  7.         chomp $line; # and print $line;
  8.        
  9.         if ($line =~ m{Project: \[(\w+)\], Configuration: \[(\w+)\]}) {
  10.                 $project = $1 if defined $1;
  11.                 $configuration = $2 if defined $2;
  12.                 print "Project = $project\n";
  13.                 print "Configuration = $configuration\n";
  14.         }
  15. }

  16. --------------

  17. <html>
  18. <head>
  19.         <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
  20. </head>
  21. <body>
  22. <pre>
  23. <table width=100% bgcolor=#CFCFE5>
  24.         <tr>
  25.                 <td>
  26.                 <font face=arial size=+3>
  27.                         Build Log
  28.                 </font>
  29. </table>

  30. <table width=* cellspacing=0 cellpadding=0>
  31.         <tr>
  32.                 <td width=0>
  33.                         Project: [sky], Configuration: [earth]
  34.                 </td>
  35.         </tr>
  36. </table>
  37. </body>

  38. -------------------------------

  39. >perl -w test.pl
  40. Project = sky
  41. Configuration = earth
  42. >Exit code: 0
复制代码


是不是这样

[ 本帖最后由 cobrawgl 于 2007-9-25 15:29 编辑 ]

论坛徽章:
0
29 [报告]
发表于 2007-09-25 15:27 |只看该作者

论坛徽章:
0
30 [报告]
发表于 2007-09-25 15:31 |只看该作者
perljoker:
你不是说清楚我的问题了嘛,唉。。
不过,优化起我的代码来了。

我是要读取那串信息,,但我还要将那串信息分解决,即读取project、Configuration后面的值分析出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP