我有一个字符串,其中有几个部分由制表符分隔:

 Hello\t2009-08-08\t1\t2009-08-09\t5\t2009-08-11\t15

我想仅在第一个标签上将其拆分,以便“Hello”最终在 $ k 中,并且休息结束于 $ v 。这不太有效:

my ($k, $v) = split(/\t/, $string);

我该怎么做?

有帮助吗?

解决方案

为了实现这一点,您需要使用第3个参数来 split() ,为函数提供要分割的最大字段数(如果为正数):

my($first, $rest) = split(/\t/, $string, 2);

其他提示

没有。它将为您提供前两项并抛弃其余项目。试试这个:

my ($k, $v) = split(/\t/, $string, 2);

另一种选择是使用简单的正则表达式。

my($k,$v) = $str =~ /([^\t]+)\t(.+)/;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top