我正在尝试将字符串拆分为数组,并在白色空格处进行拆分.每个文本块由许多(可变)空格分隔.
这是字符串:
NUM8 host01 1,099,849,993 1,099,849,992 1
Run Code Online (Sandbox Code Playgroud)
我试过以下但没有成功.
my @array1 = split / /, $VAR1;
my @array1 = split / +/, $VAR1;
my @array1 = split /\s/, $VAR1;
my @array1 = split /\s+/, $VAR1;
Run Code Online (Sandbox Code Playgroud)
我想最终得到:
$array1[0] = NUM8
$array1[1] = host01
$array1[2] = 1,099,849,993
$array1[3] = 1,099,849,992
$array1[4] = 1
Run Code Online (Sandbox Code Playgroud)
拆分这个的最好方法是什么?
谢谢!
cho*_*oba 28
如果第一个参数split是字符串''(空格),则它是特殊的.它应匹配任何大小的空格:
my @array1 = split ' ', $VAR1;
Run Code Online (Sandbox Code Playgroud)
(顺便说一下,它几乎等同于你的最后一个选项,但它也删除了任何前导空格.)
试试使用:
my @array1 = split(' ',$VAR1);
Run Code Online (Sandbox Code Playgroud)
来自Perldoc:
作为另一种特殊情况,当省略PATTERN或由单个空格字符组成的文字字符串(例如''或"\ x20",但不是例如/ /)时,split会模拟命令行工具awk的默认行为.在这种情况下,EXPR中的任何前导空格都会在拆分之前被删除