This is an old revision of the document!
Version 1.0.0 (21.08.2014)
Diese Funktion ist analog zum PHP-Befehl substr_replace()
'Nach dem 3ten Zeichen alles ersetzen ?substrReplace("AB CD EF", "_uvw_", 3) AB _uvw_ 'Nach dem 3ten Zeichen einfügen ?substrReplace("AB CD EF", "_uvw_",3, 0) AB _uvw_CD EF 'ab dem 3ten Zeichen 3Zeichen ersetzen ?substrReplace("AB CD EF", "_uvw_",3 ,3) AB _uvw_EF 'Ab dem 3ten Zeichen von hinten ein Zeichen ersetzen ?substrReplace("AB CD EF", "_uvw_",-3, 1) AB CD_uvw_EF 'Ab dem 3ten Zeichen bis zum 2t letzten Zeichen ersetzen ?substrReplace("AB CD EF", "_uvw_", 3, -2) AB _uvw_EF 'Text am Anfang anfügen ?substrReplace("AB CD EF", "_uvw_",0,0) _uvw_AB CD EF
Und noch ein einfaches Beispiel, wie man diese Funktion für RegExp-Ersetzungen gut gebrauchen kann
Dim rx As New regExp: rx.Pattern = "\d+": rx.Global = True Dim txt As String: txt = "9 Hühner und 12 Schweine" Dim mc As MatchCollection: Set mc = rx.execute(txt) 'von Hinten nach vorne iterieren, damit die Startpunkte (firstIndex) ihre Gültigkeit behalten Dim i As Integer: For i = mc.count - 1 To 0 Step -1 Dim m As Match: Set m = mc.item(i) txt = substrReplace(txt, m.value ^ 2, m.firstIndex, m.length) Next i Debug.Print txt 'Ausgabe: '81 Hühner und 144 Schweine
Unable to display file "/vba/functions/udf_substrReplace.bas": It may not exist, or permission may be denied.