split会根据给定的模式拆分字符串,对于使用制表符、冒号、空格或任意符号分割不同字段数据的字符串来说,用这个操作符分解提取字段相当方便。只要你能将分隔符写成模式,就可以用split分解数据。
split具体用法如下:
my @fields = split /separator/, $string;
例子详解:
my @fields = split /,/, "hello,world";
#得到("hello", "world")
#如果两个分隔符连在一起,就会产生空字段:
my @fields = split /,/, "hello,,world";
#得到("hello", "", "world")
#split会保留开头的空字段,但会舍弃结尾处的空字段。
my @fields = split /,/, ",,,hello,world,,,";
#得到("", "", "","hello", "world")
#split的/\s+/模式根据空白分隔字段。
#该模式把所有连续空白视作单个空格并以此分割
my @fields = split /\s+/, "oh hello world";
#得到("oh","hello", "world")
#默认split会以空白分割$_中的字符串:
my @fields = split;
#等效于split /\s+/, $_;
#另一种用法:
my @fields = split /\s/, "oh hello world", 2;
#得到("oh","hello world"
#此外可以将@fields结果传递给变量
my @fields = split /\s/, "oh hello world";
my $words = $filed[0];
#则$words的值为"oh"
my @fields = split '|', "oh hello world";
#等价于
my @fields = split /|/, "oh hello world";
#多种字符分割
my @fields = split /[\s,]/, "oh,hello world";
#得到("oh","hello", "world")
#或者:
my @fields = split /\s|,/, "oh,hello world";
#得到("oh","hello", "world")
#拆分为哈希
my $sline='xiaoming=A&xiaoli=B&xiaohua=C';
my %array=split /[=&]/,$line;
#得到
#'xiaoming' => 'A',
#'xiaoli' => 'B',
#'xiaohua' => 'C'
split函数在Perl中用于根据指定模式拆分字符串,常用于处理以特定字符或组合分隔的数据。它可以处理连续的空字段,保留开始的空字段并丢弃结束的。例如,使用逗号、空格或自定义模式进行分割,并能将结果赋值给数组或哈希。示例展示了如何处理多种情况,包括多个连续分隔符、限制分割次数以及拆分包含等号和连接符的字符串到哈希。
7892

被折叠的 条评论
为什么被折叠?



