Christoph Müller-Brodmann: Reguläre Ausdrücke mit Ausschluß

Hallo zusammen,

ich suche eine Möglichkeit folgende Zeichenkette korrekt mit einem Regulären Ausdruck auszuwerten:

RFF+123:123:Test?:412:asd'

Zum Auswerten benötige ich alle + und : jedoch nicht die mit einem Fragezeichen davor.

Also müsste ich am Beispiel als Ergebnis bekommen:

"+:::"

Der Doppelpunkt mit dem Fragezeichen davor dürfte also nicht in der Ergebnismenge liege.

Habe schon viel ausprobiert, komme aber einfach auf keine funktionierende Lösung.

Vielen Dank
Christoph

  1. Moin, moin!

    Hier wäre eine Lösung in Perl-Syntax:

    $string="RFF+123:123:Test?:412:asd?+'";
    $string=~s/(?:)|(?+)|[^(+|:)]//g;
    print $string;

    Alles klar?

    Norbert

    1. Hallo Norbert,

      $string=~s/(?:)|(?+)|[^(+|:)]//g;

      Da sind ein paar Fehler drin, in Zeichenmengen ist + kein Sonderzeichen und () und | brauchst Du da auch nicht.

      So funktioniert es:
      $string =~ s/?[+:]|[^+:]//g;

      Grüße

      Daniel