2

私は以下のようなファイル名を持っています:

first_config.txt.1.1
second_config.2.1.1.1

perlを使用して、ファイル名とバージョンを完全なファイル名から分離したかったのです。

first_config.txt & 1.1 
second_config & 2.1.1.1

以下のコードを試しましたが、期待どおりに動作しません。

to extract the version from the complete file name string:
perl -e '$n = "first_config.txt.1.1"; $n =~s/[^\.\d.]//g; print "$n\n";'

to extract the name from the complete file name string:
perl -e '$n = "first_config.txt.1.1"; $n =~s/[\.^\d.]//g; print "$n\n";'
4

2 に答える 2

3

.a に続く数字で 2 つに分割:

my ($name, $version) = split /\.(?=\d)/, $filename, 2;
于 2013-08-29T08:26:11.997 に答える
1

正規表現を使用して数字を抽出し.、文字列の末尾から抽出することもできます。

my ($name, $version) = $filename =~ /(.*?)\.([.\d]*)$/;
于 2013-08-29T08:52:34.920 に答える