我有一个输入文件,其语法如下:
00000 INFO [IVS ] reset receiver
00000 INFO [IVS ] reset transmitter
00331 INFO [IVS ] sync detected
Run Code Online (Sandbox Code Playgroud)
表格中要求的数据
frame=0000
info=INFO
TYPE=[IVS ]
message=reset receiver
($frame,$info,$type,$message)=split(what would be the argument?);
Run Code Online (Sandbox Code Playgroud)
注意:支架前的IVS之后的空格,所以不能使用空格作为分隔符.
错误的问题.你不想使用拆分.经验法则是:当您知道数据的样子时,使用正则表达式匹配; 当你知道你的分隔符是什么样的时候使用split.
my ($frame, $info, $type, $message) =
$data =~ /(\d+) (\S+)\s+\[(\S+)\s*\] (.*)/;
Run Code Online (Sandbox Code Playgroud)
将是一个非常好的开始.
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |