0

さまざまな数の空白で区切ることができる文字列内の各単語を取得しようとしています。

my $ff = "Disk  DSM     Policy  Paths   Serials";

if($ff =~ m/(\w+)/) {
    print $1;
    print $2;
    print $3;
}

\w と同じくらい簡単だと思ったのですが、最初の単語しか取得できませんか? 私は何か間違ったことをしていますか?

4

1 に答える 1

5

ローカルに一致gする必要があります。

my $ff = "Disk  DSM     Policy  Paths   Serials";

my (@words_match) = $ff =~ /(\w+)/g;
# (
#     'Disk',
#     'DSM',
#     'Policy',
#     'Paths',
#     'Serials'
# )

より良い解決策は、分割することです。

my @words_split = split ' ', $ff;
# (
#     'Disk',
#     'DSM',
#     'Policy',
#     'Paths',
#     'Serials'
# )
于 2012-07-24T17:35:28.947 に答える