[<>]
====== [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