文字列がある場合は、次のように言います。
my $string = "A, B,C, D , E ";
これをPerlの先頭と末尾のスペースなしで配列に入れるにはどうすればよいですか?だから私が欲しいのは、各配列要素の1文字だけです。私が現在していることはこれです:
my @groups = split /,\s*/, $string;
しかし、これは明らかに十分ではありません。後続のスペースがまだそこにあるからです。助けていただければ幸いです。どうもありがとう !!
次に、分割する前に先頭/末尾のスペースを削除し、split式の先頭/末尾のスペースを一致させます。
my $string = " A, B,C, D , E ";
$string =~ s/^\s+//;
$string =~ s/\s+$//;
my @groups = split /\s*,\s*/, $string;
ただし、 Text :: CSVのようなモジュールを使用する方が、独自のCSV解析を実行するよりもおそらく優れています。
どうぞ:
@groups = split /,/, $string;
#remove whitespace now.
@groups = map { s/^\s+//; s/\s+$//; $_ } @groups;
注:正規表現は単純化できますが、まだ解決していないと確信しています。
に制限する必要はありません。修飾子split
との一致を使用するだけです。/g
my $string = " A, B,C, D , E ";
my @groups = $string =~ /\s*([^,]+?)\s*,?/g;
私が何かを見逃していないことを確認するために、あなたの例をわかりやすく説明しようとした後、私はこれを思いついた:
my $string = " A, B,C, D , E ";
$string =~ s/\s+//g;
my @groups = split /,/, $string;
私が推測するどちらかで動作しますか?