题
我有一个字符串,其中有几个部分由制表符分隔:
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(.+)/;
不隶属于 StackOverflow