This question already has answers here:
Using perl to split a line that may contain whitespace

(5个答案)


7年前关闭。





我正在尝试将字符串拆分为数组,拆分发生在空白处。每个文本块由许多(可变)空格分隔。

这是字符串:

NUM8         host01    1,099,849,993  1,099,849,992             1


我尝试了以下方法,但未成功。

my @array1 = split / /, $VAR1;

my @array1 = split / +/, $VAR1;

my @array1 = split /\s/, $VAR1;

my @array1 = split /\s+/, $VAR1;


我想结束于:

$array1[0] = NUM8
$array1[1] = host01
$array1[2] = 1,099,849,993
$array1[3] = 1,099,849,992
$array1[4] = 1


拆分此内容的最佳方法是什么?

最佳答案

如果split的第一个参数是字符串''(空格),则它是特殊的。它应该匹配任何大小的空格:

my @array1 = split ' ', $VAR1;


(顺便说一句,它几乎等同于您的最后一个选项,但它也删除了所有前导空格。)

09-17 10:40