Ich möchte eine reguläre Ausdruck Assembly von gemeinsamen Regex erstellen, die ich in meinem Projekt verwenden muss. Ich verwende diese regulären Ausdrücke, um ein Muster zu vergleichen und es zu ersetzen. Ich benutze diesen Code, der die Baugruppe erstellt.Kompiliert ersetzen regulären Ausdruck
AssemblyName an = new AssemblyName("MyRegExp");
RegexCompilationInfo[] rciList = {
new RegexCompilationInfo(@"\<b\>(.+?)\<\/b\>", RegexOptions.IgnoreCase, "BoldCode", "MyRegExp", true),
new RegexCompilationInfo(@"\<i\>(.+?)\<\/i\>", RegexOptions.IgnoreCase, "ItalicCode", "MyRegExp", true)
};
Regex.CompileToAssembly(rciList, an);
Aber ich kann nicht finden, wo die Ersetzungszeichenfolge anzugeben ist. In der Tat werde ich diese Regexp verwenden, um die Tags in einer HTML-Datei durch ersetzen. Die Ersetzungszeichenfolge ist also ebenfalls konstant.
Ich möchte nicht, dass die aufrufende Assembly die Ersetzungszeichenfolge angibt, da sie immer gleich ist, über verschiedene aufrufende Assemblys.
Vielen Dank im Voraus für jede Beratung, Fabian
EDIT1:
Vielleicht misexplained ich, was ich tun muss. Ich habe mehrere reguläre Ausdrücke, die immer mit dem gleichen Muster ersetzt werden. Ich ersetze alle Zeichenfolge mit Zeichenfolge, Zeichenfolge mit Zeichenfolge, und so weiter.
Die kompilierten Regex sind großartig, aber ich vermisse das Ersatzmuster in der kompilierten Assembly. Es ist mir gelungen, einen Workaround mit einer Helper-Klasse zu erstellen, die ein Array von Transformationen erstellt.
Meine erste Frage war mehr das: Ist es eine Möglichkeit, in der kompilierten Regex die Ersatzzeichenfolge zu spezifizieren?
Gute Idee, was ich gefunden habe, ist das gleiche wie du, Regex unterstützt nicht die Ersatzzeichenfolge zur Kompilierzeit zu kennen. In der Zwischenzeit habe ich es geschafft, eine Helper-Klasse zu schreiben, die all das Zeug macht. –