我想基于空行分割变量。变量是如何匹配空白行
$s = "iSCSI cred number=0
name=match1
string=2
name=number1
iSCSI cred number=1
name=match2
string=3
name=number2
iSCSI cred number=2
name=match3
string=4
name=number3";
我想基于空行分割变量。变量是如何匹配空白行
$s = "iSCSI cred number=0
name=match1
string=2
name=number1
iSCSI cred number=1
name=match2
string=3
name=number2
iSCSI cred number=2
name=match3
string=4
name=number3";
使用分裂与 '\ n \ S' 作为分隔符,
my @arr = split('\n\s',$s);
my @arr = split(/[\n]{2,}/,$s);
如果 “空” 行包含萨姆空间,你可以这样做:
split/\n+\s*\n+/, $s;
,或者是unicode兼容:
split/\R+\s*\R+/, $s;
很多很好的答案如何处理你所拥有的字符串。但是让我们猜一猜你应该问什么问题。
如何在段落中读取文件? - 这恰好是一个Frequently Asked Question。
如果你在从文件中读取这些数据,那么你会更好,正确地分析它,你在阅读它。
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
local $/ = '';
while (<DATA>) {
say "Record number $. is:\n$_";
}
__DATA__
iSCSI cred number=0
name=match1
string=2
name=number1
iSCSI cred number=1
name=match2
string=3
name=number2
iSCSI cred number=2
name=match3
string=4
name=number3
这是当然的,只是在猜测什么你正在努力。如果我不符合标准,请不理我。
为什么在这个问题上的所有downvotes? – TLP 2011-12-14 14:17:28