搜索substring并在Perl中存储字符串的另一部分

时间:2013-10-02 05:19:41

标签: string perl file

我对Perl很新。我试图逐行读取文件,在每一行中搜索特定的模式。如果找到模式,那么我需要在不同的变量中存储同一行的不同部分。例如,假设这些是文件中的行 -

01 Started Job 1 Calculation
02 Started Job 2 Publish
03 Completed Job 1 Calculation
04 Started Job 3 Upload
05 Completed Job 2 Publish

我在每行搜索“开始工作”字样。如果找到,我需要存储以字符串开头的作业的以下作业编号和名称,并将记录ID(行中的第一个单词)存储到不同的字符串中。到目前为止,这是我的代码 -

while (<READLOG>) 
  {
         if (/Started Job/)
         {
               my @words = split(" ",$_);
               my $recordID = $words[0];
               my $Job = $words[3] . " " . $words[4];
         } 
  } 

这暂时有用,但我想知道是否有更好的方法可以做到这一点?喜欢存储“开始工作”后面的所有单词吗?

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

你应该多看一下正则表达式。在“开始工作”之后存储单词可以通过使用匹配组来完成,即/Started Job(.*)$/。然后,您将在$1中找到该行的其余部分。