我想基於空行分割變量。變量是如何匹配空白行
$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