Dokumentation zu: regreplace.de(E)

HR Image


SYNOPSIS
      string regreplace(string txt, string pattern, 
                            string|closure replacepattern, int flags)

BESCHREIBUNG
      Die Funktion durchsucht den String txt nach einem Vorkommen
      des regulaeren Ausdrucks pattern, und ersetzt ihn durch
      den String replacepattern. (replacepattern kann auch eine Closure
      sein. Sie bekommt als argument den passenden Substring und muss
      den Ersatzstring zurueckliefern.)

      Im replacestring kann man via '&' auf den zum Suchausdruck
      passenden Teilstring im Original zugreifen. Mit \n (wobei n
      eine Ganzzahl ist) kann man auf den n-ten Unterausdruck
      des regulaeren Ausdrucks zugreifen. Um "&" oder "\\1" als
      Ersetzung zu erreichen, muss "\\&" bzw "\\\\1" verwendet werden.

      Beim Flag bestimmt ein gesetztes Bit 0, dass der Ausdruck so oft
      wie vorhanden ersetzt wird, sonst nur das erste Auftreten.
      Bit 1 bestimmt, ob der regulaere Ausdruck 'ed' oder 'sed' kompatibel
      ist (Bit geloescht) oder 'ex' kompatibel (gesetzt).

      Die Funktion wirkt wie s/pattern/replacepattern/flags in
      Editoren wie vi oder sed. Sie ist besonders gut geeignet um
      variable Strings zu ersetzen, im Gegensatz zu regexplode, wo
      man den String nur nach einem regulaeren Ausdruck zerlegen kann.

BEISPIELE
      string msgin;

      /* Sucht nach 'teilt Dir mit: ' und schliesst den nachfolgenden
      ** Text mit <underline> und </underline> ein; bei jedem Auftreten.
      */
      msgin = regreplace(msgin, "teilt Dir mit: (.*)",
             "teilt Dir mit: <underline>\\1</underline>", 1);

      /* Ersetzt die <underline> html-Tags durch die vt100
      ** Escape-Sequenzen fuer Unterstreichung
      */
      txt = regreplace(txt, "<underline>", "<ESC>[5m", 1);

      /* Ersetzt das Wort HOUSE in Kleinbuchstaben. */
      txt = regreplace(txt, "HOUSE",
              function string (string s) {return lower_case(s);},
              1);

AUTOR
      Marcus@TAPPMud schrieb die Original-efun (und die englische Manpage).

SIEHE AUCH
      regexp(E), regexplode(E), sscanf(E)

Das Original der Seite ist in Englisch.

Start » Magierhandbuch » Docu » Efun.de » Regreplace.de Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!