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'
Siehe auch RegexRemove