Wie kann ich einen ausgewerteten Ausdruck in Perl ersetzen?

8

Es gibt eine Datei dummy.txt

Der Inhalt ist:

%Vor%

Ich muss den Monatsteil (0,2,11) auf +1 ändern, dh (1,3,12) Ich schrieb die Substitutionsregex wie folgt

%Vor%

Es wird gedruckt

%Vor%

Wie kann ich hinzufügen - 3 numerisch, als String Concat ausführen? 2+1 ??

    
Sekhar 15.10.2010, 05:49
quelle

3 Antworten

15

Drei Änderungen:

  • Sie müssen den e -Modifikator verwenden einen Ausdruck in der Ersatzteil.
  • Um den Ersatz global zu machen Sie sollten den g -Modifikator verwenden. Dies ist nicht erforderlich, wenn Sie ein Datum pro Zeile haben.
  • Sie verwenden auf der Ersatzseite, keine Rückreferenz

Das sollte funktionieren:

%Vor%

Auch wenn Ihre Regex das Trennzeichen enthält, das Sie verwenden ( / in Ihrem Fall), ist es besser, ein anderes Trennzeichen ( {} oben) zu wählen, damit Sie nicht das Trennzeichen im Regex macht Ihre Regex sauber.

    
codaddict 15.10.2010, 05:55
quelle
1

Wie wäre es damit?

%Vor%     
Lazer 15.10.2010 06:00
quelle
0

das funktioniert: ( e soll die Ersetzungszeichenfolge auswerten: siehe perlrequick Dokumentation).

> %Vor%

Es hilft, ! oder ein anderes Zeichen als Trennzeichen zu verwenden, wenn Ihr regulärer Ausdruck / selbst hat.

Sie können diese Frage auch in Can Perl String-Interpolation verwenden Durchführen einer Ausdruckauswertung?

%Vor%

Wenn es sich jedoch um eine Hausaufgabenfrage handelt, sollten Sie bereit sein zu erklären, wann der Lehrer Sie fragt, wie Sie diese Lösung erreichen.

    
太極者無極而生 15.10.2010 06:04
quelle

Tags und Links