Ergebnis 1 bis 5 von 5

Thema: Reguläre Ausdrücke: Zahl in Replace maskieren

  1. #1

    Reguläre Ausdrücke: Zahl in Replace maskieren

    Hi Leute,

    ich komme mit einem regulären Ausdruck nicht zurecht... Vielleicht ist es ganz einfach, aber ich finde es einfach nicht.
    Ich mache die Sache mal kurz:

    Zu durchsuchender Text:
    Code:
    <bla>xyz</bla>
    <tagName>10</tagName>
    <foo>bar</foo>
    Ausdruck:
    Code:
    (<tagName>)(..)(</tagName>)
    Ersetzen will ich, was zwischen den Tags steht. Und zwar mit einer Zahl. Wenn ich jetzt aber zum Beispiel die 10 durch eine 20 ersetzen will, kann ich das ja nicht so schreiben:
    Code:
    $120$3
    Die 20 werden ja jetzt (zu Recht) als Teil des ersten Blocks interpretiert (also Block $120).
    Kann man das irgendwie maskieren?

  2. #2
    Für PHP habe ich direkt eine Lösung gefunden:
    http://de2.php.net/manual/en/function.preg-replace.php (1ter Beispielcode).

    Da PCRE könnte es auch in anderen Sprachen funktionieren.

  3. #3

  4. #4
    Ah, mit den {}-Brackets hat's geklappt.
    Danke euch beiden!

    Beispiel in .NET:
    Code:
    using System;
    using System.Text.RegularExpressions;
    
    // ...
    
    Regex reg = new Regex(@"(<tagName>)(..)(</tagName>)");
    string content = Functions.ReadFile(filePath);
    
    content = reg.Replace(content, "${1}" + irgendeinWert + "${3}"));

  5. #5
    Zitat Zitat von NPC Fighter Beitrag anzeigen
    Ah, mit den {}-Brackets hat's geklappt.
    Danke euch beiden!

    Beispiel in .NET:
    Code:
    using System;
    using System.Text.RegularExpressions;
    
    // ...
    
    Regex reg = new Regex(@"(<tagName>)(..)(</tagName>)");
    string content = Functions.ReadFile(filePath);
    
    content = reg.Replace(content, "${1}" + irgendeinWert + "${3}"));
    Hehe, der Spaß hat mich im Bash-Scripting schon einmal fast um den Verstand gebraucht. Curly Brackets to the Rescue!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •