Wie kann man in Perl den umgekehrten Schrägstrich durch Schrägstrich ersetzen?

7

Ähnlich wie erreiche ich das gleiche in Perl?

Ich möchte

konvertieren %Vor%

Ich versuche, Beispielen zu folgen, die hier gegeben wurden, aber wenn ich etwas sage wie

%Vor%

Ich erhalte einen Kompilierungsfehler. Ich habe versucht, den Schrägstrich zu umgehen, aber ich bekomme dann andere Compilerfehler.

    
user375868 04.11.2011, 19:12
quelle

3 Antworten

21

= ~ unterscheidet sich sehr von =~ . Die erste ist Zuweisung und bitweise Negation, die zweite ist der Bindungsoperator, der mit Regexes verwendet wird.

Was Sie wollen, ist das:

%Vor%

Beachten Sie die Verwendung der globalen Option /g , um Änderungen in der gesamten Zeichenfolge vorzunehmen. In Ihrem Fall sieht es so aus, als müssten Sie:

%Vor%

Wenn Sie eine lesbare Regex möchten, können Sie das Trennzeichen austauschen: s#\#/#g;

Wenn Sie Ihre ursprüngliche Zeichenfolge beibehalten möchten, können Sie sie vor dem Ersetzen kopieren. Sie können auch die Transliteration verwenden: tr#\#/# - in diesem Fall brauchen Sie keine globale Option.

Kurz gesagt:

%Vor%

Dokumentation:

TLP 04.11.2011, 19:26
quelle
6

Sie teilen den Operator =~ auf und verpassen den globalen Modifikator. Ordnen Sie $dir zu $replacedString zu und führen Sie dann die Ersetzung durch.

%Vor%

Sie können tr , den Übersetzeroperator, anstelle des s -Operators verwenden, um zu erhalten einfacherer Code.

%Vor%     
Mike Samuel 04.11.2011 19:14
quelle
6

Sie suchen möglicherweise nach File :: Spec- & gt; canonpath oder Path::Class ohne es zu merken.

    
Sinan Ünür 05.11.2011 13:37
quelle

Tags und Links