Wie wird Text ersetzt, während die Groß- und Kleinschreibung beibehalten wird?

8

Angenommen, ich möchte eine Zeichenfolge ersetzen in einer Datei mit folgendem Inhalt

%Vor%

Und wollte das Wort "name" durch "dave" ersetzen, aber die Großschreibung des Originaltextes beibehalten. Zum Beispiel wäre meine gewünschte Ausgabe,

%Vor%

Gibt es irgendwelche Einzeiler (vorzugsweise in Perl, sodass ich eine direkte Ersetzung über viele Dateien hinweg vornehmen kann)?

BEARBEITEN Das Problem ist mehrdeutig, wenn nicht beide Strings genau die gleiche Länge haben. Nehmen wir an, dass es so ist.

    
duckworthd 09.08.2011, 20:55
quelle

3 Antworten

8

Es gibt einige Lösungen für perlFaq: Ссылка ?

Eine der dort vorgestellten Lösungen erlaubt es, die Substitution in einer einzigen Zeile durchzuführen, indem eine Subroutine (preserve_case) definiert wird:

%Vor%

Dies druckt: Dies ist ein SUcCESS Fall

    
mMontu 09.08.2011 21:05
quelle
0

Es ist verrückt, aber es funktioniert:

%Vor%

Einzeilige Lösung!

    
TMS 09.08.2011 21:53
quelle
0

Ich frage mich, ob das Beispiel von Perlfaq für Nicht-ASCII funktioniert. Eine Variante, die den XOR-Hack nicht verwendet, könnte sein:

%Vor%

Aber das funktioniert nur, wenn der Modifikator " /i " locale-enabled ist (siehe perllocale).

    
Raimund Steger 09.08.2011 23:00
quelle

Tags und Links