Ändern Sie die letzten zwei Zeichen einer Zeichenfolge in Perl

8

Ich suche nach einer Lösung für ein Problem:

Ich habe die NSAP-Adresse, die 20 Zeichen lang ist:

%Vor%

Ich muss nun die letzten zwei Zeichen dieses Strings durch F0 ersetzen und der letzte String sollte wie folgt aussehen:

%Vor%

Meine aktuelle Implementierung kopiert die letzten zwei Zeichen und hängt F0 an sie an:

%Vor%

Gibt es einen besseren Weg, dies zu erreichen?

    
Shree 07.12.2010, 10:50
quelle

3 Antworten

18

Sie können substr :

verwenden %Vor%

oder

%Vor%

Oder Sie können eine einfache Regex verwenden:

%Vor%

Dies ist von der Hilfeseite von substr :

%Vor%

Nun ist der interessante Teil, dass das Ergebnis von substr als Lvalue verwendet und zugewiesen werden kann:

%Vor%

oder Sie können das Ersatz Feld verwenden:

%Vor%     
Nathan Fellman 07.12.2010, 10:56
quelle
9
%Vor%

ersetzt die letzten zwei Zeichen einer Zeichenfolge durch F0 .

    
igor 07.12.2010 10:53
quelle
5

Verwenden Sie die Funktion substr () :

%Vor%

chop () und die zugehörige chomp () sind wirklich zum Entfernen von Zeilenendenzeichen - Zeilenumbrüchen und so gedacht an.

Ich glaube, dass substr () schneller ist als ein regulärer Ausdruck.

    
martin clayton 07.12.2010 10:56
quelle

Tags und Links