Wie entferne ich "." aus einem Dateinamen in Perl?

Wie entferne ich "." aus einem Dateinamen in Perl?

Ich mache /(\.[^.]+)$/in Perl zum Beispiel das Auslesen der Dateiendung einer Datei Text.txt. Wie kann ich das entfernen, .damit die Ausgabe lautet Texttxt?

Antwort1

Die Übereinstimmungsgruppe /(…)/enthält allesinnendie Klammern. Wenn Sie nicht möchten, dass der Punkt Teil davon ist, setzen Sie ihndraußen die Klammern: /\.([^.]+)$/.

#!/usr/bin/env perl

use strict;
use warnings;

my $filename = 'Test.txt';
$filename =~ s/(.*)\.([^.]+)$/$1$2/;
#               ^^    ^^^^^
#               $1     $2
print "filename: '$filename'\n";

# prints "Testtxt"

verwandte Informationen