10

分割したい文字列があります。ただし、セパレータは実行時に決定されるため、変数として渡す必要があります。

のようなものmy @fields = split(/$delimiter/,$string);は動作しません。何かご意見は?


入力:

abcd|efgh|23

期待される出力:

abcd
efgh
23
4

1 に答える 1

19

デリミタは正規表現の特殊文字であるため、エスケープする必要があります。

オプション1:

$delimiter = quotemeta($delimiter);
my @fields = split /$delimiter/, $string;

オプション 2:

my @fields = split /\Q$delimiter/, $string;
于 2011-03-28T19:45:06.450 に答える