tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1288
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Marius89 Marius89 ist offline Rookie
    Registriert seit
    Jan 2008
    Beiträge
    5
    Ich habe einen String der folgendermaßen aussieht:

    Code :
    1
    
    string eingabe = "Mama [formula]abc[/formula], papa [formula]7*5[/formula] und ich";

    ich möchte nun das jedes vorkommen von [formula]...[/formula] durch <formula>...</formula> ersetzt wird.

    Also folgendes Ergebnis:

    Code :
    1
    
    Mama <formula>abc</formula>, papa <formula>7*5</formula> und ich

    Bisher hab ich das so gemacht:

    Code :
    1
    
    string erg = Regex.Replace(eingabe, @"\[formula\](.*)\[/formula\]", "<formula>$1</formula>");

    nur interpretiert er mir leider dann nur das erste [formula] und das letzte [/formula], so dass herauskommt:
    Code :
    1
    
    Mama <formula>abc[/formula], papa [formula]7*5</formula> und ich
    Hat jemand ne Idee?
     

  2. #2
    Avatar von JensG
    JensG JensG ist offline Mitglied Platin
    Registriert seit
    Jun 2004
    Ort
    Gera (Thüringen)
    Beiträge
    517
    Hallo Marius,

    meine Regex Kenntnisse reichen jetzt leider auch nicht aus um das zu lösen...

    Aber warum Regex ?

    Das kannst du doch (wenn ich das richtig verstanden habe) ganz einfach
    über Strings.Replace lösen.

    Gruß
    Jens
     

  3. #3
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hi.

    Regex ist von Natur aus Gierig.

    Code :
    1
    
    \[formula\](.*?)\[/formula\]

    Dieses Pattern sollte abhilfe schaffen.

    Das Fragezeichen schaltet dieses gierige Verhalten sozusagen aus.

    @Jens: Vielleicht möchte er es noch erweitern, und da ist dann RegEx praktischer.

    lg
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  4. #4
    Marius89 Marius89 ist offline Rookie
    Registriert seit
    Jan 2008
    Beiträge
    5
    Zitat Zitat von Alexander Schuc Beitrag anzeigen
    Hi.

    Regex ist von Natur aus Gierig.

    Code :
    1
    
    \[formula\](.*?)\[/formula\]

    Dieses Pattern sollte abhilfe schaffen.

    Das Fragezeichen schaltet dieses gierige Verhalten sozusagen aus.

    @Jens: Vielleicht möchte er es noch erweitern, und da ist dann RegEx praktischer.

    lg

    Super, danke!
    Jetzts gehts einwandfrei


    Das Problem war etwas komplexer, deswegen hätte String.Replace nicht funktioniert.
    Hab es nur vereinfacht dargestellt, damit man schnell sieht, wo das Problem liegt.

    THX @ all
     

Ähnliche Themen

  1. Hilfe bei regulärem Ausdruck
    Von exiter28 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 28.09.10, 09:15
  2. Hilfe zu regulärem Ausdruck
    Von d_b im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 09.05.09, 10:34
  3. Hilfe bei regulärem Ausdruck
    Von Commanderalpha im Forum PHP
    Antworten: 5
    Letzter Beitrag: 04.09.07, 12:42
  4. Brauch Hilfe bei Regulärem Ausdruck
    Von Soapp im Forum PHP
    Antworten: 2
    Letzter Beitrag: 29.08.06, 14:10
  5. Hilfe bei Regulärem Ausdruck
    Von schoko im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.08.06, 14:50