Ich verwende ein Perl-Programm, um Text aus einer Datei zu extrahieren. Ich habe ein Array von Zeichenfolgen, die ich als Trennzeichen für den Text verwende, z. B .:
%Vor% Zwei der Strings im Array sind jedoch 0
und (Buy now)
. Das Problem dabei ist, dass die Symbole in den Strings die End-of-String- und Capture-Gruppe in regulären Perl-Ausdrücken darstellen, so dass der Text nicht wie beabsichtigt interpretiert wird.
Gibt es einen Weg dazu?
quotemeta entkommt Meta-Zeichen, so dass sie als Literale interpretiert werden. Als Abkürzung können Sie \ Q ... \ E im doppelten Kontext verwenden, um Dinge zu umgeben, die zitiert werden sollten:
%Vor%oder
%Vor%oder nur
%Vor%Beachten Sie, dass dies nicht auf interpolierte Variablen beschränkt ist; Literale Zeichen sind auch betroffen:
%Vor%obwohl es offensichtlich nach der Variableninterpolation passiert, so wird "\ Q $ foo" nicht zu "\ $ foo".