Wie kann ich aus einer Zeichenkette (String) einen regulären Ausdruck machen?! Bei Google gesucht, lange nichts Sinnvolles gefunden. Bis ich im MSDN auf Regex.Escape gestoßen bin. Die Methodenbeschreibung lautet:
Versieht einen minimalen Satz von Zeichen (\, *, +, ?, |, {, [, (,), ^, $,., # und Leerraum) mit Escapezeichen, indem diese durch die jeweils entsprechende Escapesequenz ersetzt werden.So wird das Modul für reguläre Ausdrücke angewiesen, diese Zeichen wörtlich zu interpretieren und nicht als Metazeichen.
Deshalb hier ein kurzer Artikel, wie man aus einem String ein Regex Suchmuster macht. Einfach den RegularExpressions-Namespace hinzufügen
using System.Text.RegularExpressions;
Danach kann der String wie folgt umgewandelt werden:
string searchpattern = "<!--?xml version="1.0"?-->"; searchpattern = Regex.Escape(searchpattern); Debug.Print(searchpattern); // Ausgabe: <\?xml\ version="1\.0"\?>
Nun noch die schnelle Variante:
string searchpattern = Regex.Escape("<!--?xml version="1.0"?-->"); // searchpattern hat nun den Inhalt: <\?xml\ version="1\.0"\?>
Die Methode ist static, muss also vorher nicht instanziert werden.