[<>] ====== [VBA] rx_escape_string() ====== Wenn man generisch ein Pattern zusammensetzen will, kann es hilfreich sein, die RegEx-Sonderzeichen zu escapen. Diese Funktion maskiert alle notwendigen Zeichen. >Übersicht über alle rx-Funktionen: [[..:rx:]] >Für die Ausgabe der Resultate verwendete ich die Funktion [[:vba:functions:print_r:]] >Die Funktion verwendet [[.:rx_replace]] ===== Definition ===== Public Function rx_escape_string( _ ByVal iString As String _ ) As String ==== Parameterliste ==== ***iString** String, der maskiert werden soll ===== Anwendungsbeispiele ===== print_r rx_escape_string("(00.12)") '\(00\.12\)' print_r rx_escape_string("C:\load.log") 'C:\\load\.log' ===== Code ===== Die folgende Konstante wird verwendet um die Spezielzeichen zu finden '/** ' * Pattern mit allen Sonderzeichen die Escapte werden müssen ' */ Private Const C_RX_ESCAPE_PATTERNS = "([\\\*\+\?\|\{\[\(\)\^\$\.\#])" '/** ' * Escapte alle Sonderzeichen um eine rx-Pattern zu erstellen ' * @example rx_escape_string("Hallo Welt. Geht es dir (noch) gut?") ' * Hallo Welt\. Geht es dir \(noch\) gut\? ' * @param String ' * @return String ' */ Public Function rx_escape_string( _ ByVal iString As String _ ) As String rx_escape_string = rx_replace(C_RX_ESCAPE_PATTERNS, "\$1", iString) End Function