在perl中将空格或逗号分隔的字符串拆分为列表

在perl中将空格或逗号分隔的字符串拆分为列表,perl,split,Perl,Split,案例: 我有一个字符串$str=“a,b,c” 如何拆分字符串以获得列表? 我能想到的分裂表达式是: split('[,\s]+',$str) split(/,/,$techoptionGiven) 期望的行为 @array=[abc]您的第一个选项似乎有效: #!/usr/bin/perl use strict; use warnings; use feature 'say'; use Data::Dumper; my $str = "a, b , c"; say

案例: 我有一个字符串
$str=“a,b,c”
如何拆分字符串以获得列表? 我能想到的分裂表达式是:

  • split('[,\s]+',$str)
  • split(/,/,$techoptionGiven)
  • 期望的行为
    @array=[abc]

    您的第一个选项似乎有效:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use feature 'say';
    
    use Data::Dumper;
    
    my $str = "a, b , c";
    
    say Dumper split('[,\s]+', $str);
    
    输出:

    $VAR1 = 'a';
    $VAR2 = 'b';
    $VAR3 = 'c';
    
    就个人而言,我想强调一个事实,
    split()
    的第一个参数是正则表达式,而不是字符串

    say Dumper split(/[,\s]+/, $str);
    

    b
    c
    周围的空格应该是数据的一部分,还是应该被删除?您可能不想在空格上拆分,而是在逗号上拆分,并在其周围加空格。也就是说,逗号需要在那里:
    split/\s*,\s*/,…
    。这样,嵌入在值中的空间就不会创建额外的元素。