StackExchangeの投稿と無限の試行錯誤を読んだ数日後、私は世界に助けを求めることにしました。
次の複数行の文字列が格納されて$received_data
おり、すべての行に転送速度の値だけを出力する必要があります。
これが私のコードスニペットです:
my $received_data1 = 'Transfer Speed=81.9252432155658
2013/03/25 19:51:43,915|INFO|### STATUS: OK
2013/03/25 19:51:43,915|INFO|### DATA: Transfer Speed= 83.924363456758
2013/03/25 19:51:45,927|INFO|Checking FTP upload status...
2013/03/25 19:51:45,927|INFO|### INFO: Collect Throughput.
2013/03/25 19:51:45,927|INFO|Checking FTP upload status...
2013/03/25 19:51:45,927|INFO|### DATA: Transfer Speed=67.83685237005002';
my $regex = qr/Transfer Speed=([0-9]{1,}[.][0-9]{1,}[^\n])/m;
if($received_data1 =~ $regex){
#$received_data1 =~ s/$received_dat/$regex/gm;
print $1;
}else{
print "nothingFound";
}
からprint $1
、最初の転送速度である81.9252432155658のみを取得できますが、他の転送速度は取得できません。/gm
入力文字列が複数行であることをPerlに通知し、最初の一致が見つかった後も検索を続けるために、修飾子を渡しました。の正規表現は、次の$regex
Webサイトでうまく機能します:http://www.solmetra.com/scripts/regex/index.phpそして私は一致した値の配列を取得します。
配列を取得するだけで十分です。配列をループして、値をファイルまたはコンソールに出力できるからです。
助けていただければ幸いです。
PS:私は他のStack Exchangeの投稿のほとんどを読みましたが、役に立ちませんでした。質問を複製しなかったといいのですが。私のリクエストに一致する質問があれば、リンクをいただければ幸いです。