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"