我有这个字符串'1','name','phone','address, street'
我想把它拆分成一个数组,所以我使用:
$link =~ s/'//g;
删除"'"然后@array = $link.split(',')
,问题现在是地址,你可以在这里看到,地址可能有一个逗号,所以当分裂我弄错了,我从一开始就考虑做一个正则表达式,但我不确切知道如何写它,我的意思是这是我能想到的,(?:.*?){1}[^']*[,](.*?)(?='|$)
但它不起作用.({1}从1到5不等)
有一点更轻质比Text::CSV
是Text::ParseWords
,它处理嵌入分隔符,并且还具有作为核心模块的益处.
use Text::ParseWords; use Data::Dumper; my $str = "'1','name','phone','address, street'"; my @list = quotewords(",", 0, $str); print Dumper \@list;
输出:
$VAR1 = [ '1', 'name', 'phone', 'address, street' ];