Moin moin,
ich habe mich im Forum und im gesamten I-net vergeblich umgesehen, jetzt versuche ich es mal auf diese Weise...
Ich habe folgendes Problem:
irgendwo glaube ich mal gelesen zu haben, das ich sowas in Perl machen kann:
$Regexp = "s/(abc)(xyz)/$2/g";
$String =~ $Regexp;
Wenn dies nicht der Fall ist, dann sind natürlich alle weiteren Erklärungen überflüssig, falls aber doch, dann kommen wir gleich zum nächsten Punkt.
Regexp Userabfrage und Anwendung
print "Suchausdruck eingeben\t";
$Regexp = <STDIN>;
$Regexp =~ s/\n$//g;
$Regexp =~ s/\n$//g;
$Regexp =~ s/\n/\n/g;
$Regexp =~ s/\t/\t/g;
$Regexp =~ s/\r/\r/g;
$Regexp =~ s/\f/\f/g;
#$Regexp =~ s/$/$/g;
$File =~ s/[\r\n]//g;
$Regexp = "$Regexp";
$File =~ $Regexp;
Wenn ich also vom Benutzer einen Ausdruck abfrage, dann kommt PERL mit "s/(abc)(xyz)/$1/g" nicht klar. Denn $1 wird immer als String interpretiert, ich habe trotz aller möglicher suchen-ersetzen-Funktionen nicht geschafft das $1 als Variable erkannt wird. Auch der Anhang /e ist nutzlos. Ich habe auch schon die Version
$File =~ s/$Regexp_search/$Regexp_replace/g;
probiert. Ist aber genau der gleiche Scheiß. Falls jemand das Problem kennt, bin ich für Informationen sehr dankbar.
MFG DIO2000