RegexReplace

value RegexReplace ( string BYREF strSubject, string/value strPattern/rxPattern, string strReplaceWith );

Rückgabewert

Rückgabewert

Beschreibung

TRUE / true / 1

Der Befehl wurde erfolgreich ausgeführt.

FALSE / false / 0

Das übergebene Filtermuster strPattern ist fehlerhaft.

Parameter

strSubject

Der String aus dem Teilzeichenketten, die mit dem Filterausdruck strPattern bzw. rxPattern übereinstimmen, mit dem strReplaceWith ersetzt werden sollen.

strPattern

Das Filtermuster (regulärer Ausdruck) das beschreibt welche Teilzeichenketten aus strSubject entfernt werden sollen.

rxPattern

Ein gültiger Regex-Verweis der beschreibt welche Teilzeichenketten aus strSubject entfernt werden sollen.

strReplaceWith

Der String mit dem Teilzeichenketten in strSubject ersetzt werden sollen.

Bemerkungen

Ersetzt alle Teilzeichenketten im String strSubject, die mit dem Filtermuster strPattern bzw. rxPattern übereinstimmen, mit strReplaceWith. Beinhaltet das Filtermuster strPattern bzw. der Regex-Verweis rxPattern Gruppen, so werden \1, \2, ... Stellen in strReplaceWith mit dem Inhalt der jeweiligen Gruppe ersetzt.

Ist der des reguläre Ausdruck des Filtermusters strPattern fehlerhaft, so liefert RegexReplace FALSE als Rückgabewert. In diesem Fall kann mit RegexGetLastError eine Beschreibung des Fehlers abgerufen werden.

Beispiel

Im nachfolgenden Beispiel werden zusammenhängende Ziffern- bzw. Leerzeichenfolgen durch einen Unterstrich ersetzt.

string strResult = "abc 123 de45fg 678 h ij9";

Debug ("strResult = %s", strResult);

//Numerische Zeichen- und Leerzeichenfolgen erfassen und
//mit durch "_" ersetzen
RegexReplace (strResult, "(\\d|\\ )+", "_"); //strResult = 'abc_defg_h_ij_'

Debug ("strResult = %s", strResult);
 

Im nachfolgenden Beispiel werden Gruppenübereinstimmungen in die strReplaceWith eingeprägt bevor der Austausch erfolgt.

value rxPattern;
string strSubject, strLastError;
//Zusammenhängende Zeichenfolgen bestehend aus
// Gruppe 1: einer numerische Zeichenfolge mit anschließendem 'V'
// n-Leerzeichen
// Gruppe 2: einer numerische Zeichenfolge mit anschließendem 'A'
// n-Leerzeichen
// Gruppe 3: einer numerische Zeichenfolge mit anschließendem '°C'
if (! RegexCreate("(\\d+V)\\s*(\\d+A)\\s(\\d+°C)", rxPattern)) 
    return (RegexGetLastError(strLastError));
end
strSubject = "600V 21A 564°C";
//Vorhandene Übereinstimmung durch neue Zeichenfolge ersetzten, wobei die Gruppeninhalte
//der Übereinstimmung in die Ersatzzeichenfolge eingeprägt werden
RegexReplace(strSubject, rxPattern, "Temperature: \3 - Voltage: \1 - Current: \2");
// strSubject == 'Temperature: 564°C - Voltage: 600V - Current: 21A' 

Die Regex-Funktionen

Siehe auch RegexRemove