我需要解析的数据如下:
[fild1, filed2, .... filedn] , [filed1, filed2, .... filedn] .....
Run Code Online (Sandbox Code Playgroud)
我称之为CSV数据的一种特殊形式,因为有两种逗号:
因此,在这种情况下,使用split(',' , $data)将无法满足我的需求,即解析数据并获取数据中的每条记录.
这应该做的工作:
my @out = map{[split/,/]} $data =~ /\[([^\]]+)\]/g;
Run Code Online (Sandbox Code Playgroud)
例:
use Data::Dumper;
$data='[1,2,3],[4,5],[6]';
@a=map{[split/,/]} $data =~ /\[([^\]]+)\]/g;
print Dumper @a;
Run Code Online (Sandbox Code Playgroud)
输出:
$VAR1 = [
'1',
'2',
'3'
];
$VAR2 = [
'4',
'5'
];
$VAR3 = [
'6'
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |