Jua*_*uan 2 csv arrays perl split spaces
如果我有一个字符串,请说:
my $string = "A, B,C, D , E ";
Run Code Online (Sandbox Code Playgroud)
如何在没有前导和尾随空格的情况下将它放入Perl中的数组中?所以我想要的只是每个数组元素中只有一个字母.我目前做的是这样的:
my @groups = split /,\s*/, $string;
Run Code Online (Sandbox Code Playgroud)
但这显然是不够的,因为尾随空间仍然存在.任何帮助赞赏.非常感谢 !!
然后在拆分前匹配前导/尾随空格并匹配拆分表达式中的前导/尾随空格.
my $string = " A, B,C, D , E ";
$string =~ s/^\s+//;
$string =~ s/\s+$//;
my @groups = split /\s*,\s*/, $string;
Run Code Online (Sandbox Code Playgroud)
但是,使用像Text :: CSV这样的模块可能比尝试自己的CSV解析更好.
my @groups = map { s!^\s+!!; s!\s+$!!; $_ } split /,/, $string;
Run Code Online (Sandbox Code Playgroud)
要么
my @groups = $string =~ /([A-Z])/g;
Run Code Online (Sandbox Code Playgroud)
但是,除非输入真的像您所示的那样简单,否则最好使用Text :: CSV或Text :: xSV.
归档时间: |
|
查看次数: |
1385 次 |
最近记录: |