Ich arbeite gerade an einem Übersetzungsprojekt. Eines der Probleme, denen ich begegnete, ist, wenn ich versuche, Wörter Sonderzeichen zu ersetzen.Wie man [Wort] mit Wort ersetzt, das Regex.Replace verwendet und das ganze Wort nur ersetzen sollte
Zum Beispiel:
[Animal] can be furry.
Dog is an [Animal].
Ich brauche [Animal]
mit Animal
zu ersetzen. Bitte beachten Sie, dass ich nur das ganze Wort ersetzen muss. Also sollte das Ergebnis wie folgt sein:
Animal can be furry.
Dog is an Animal.
Auch, wie gesagt, es sollte das ganze Wort sein. Also, wenn ich habe:
[Animal][Animal][Animal] can be furry.
- es ist nichts passiert als [Animal]
nicht die gleiche wie [Animal][Animal][Animal]
Probe ist - das Ergebnis immer noch
[Animal][Animal][Animal] can be furry.
sein soll:
string originalText1 = "[Animal] can be furry";
string badText ="[Animal]";
string goodText = "Animal";
Regex.Replace(originalText1, Regex.Escape(badText), Regex.Escape(goodText));
Alles ist in Ordnung. Aber wie gesagt, ich muss das ganze Wort ersetzen. Und mit dem obigen Code wird "[Animal]can be furry
" durch "Animalcan be furry
" ersetzt, was ein Nein ist.
so auch habe ich versucht:
Regex.Unescape(
Regex.Replace(
Regex.Escape(originalText1),
String.Format(@"\b{0}\b", Regex.Escape(badText)),
Regex.Escape(goodText)))
Immer noch nicht obwohl funktionieren. Und jetzt bin ich verloren. Bitte helfen Sie.
Ich möchte auch erwähnen, dass es eine fast ähnliche Post gibt, aber diese Frage erfordert nicht das Ersetzen des ganzen Wortes nur. Ich habe fast 3 Stunden über das Netz geschaut, ohne Erfolg. Ihre Hilfe wird sehr geschätzt. Vielen Dank!
Erlauben Sie mir, um das [.Net RegExp CheatSheet] (http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet) freundlich zu "inserieren", ist es sehr nützlich linkto zur Hand :) – quetzalcoatl
Dies entspricht keinem der in der Frage angegebenen Beispiele, da '[' und ']' * keine Wortgrenze enthalten. Dies entspricht zum Beispiel "A [Tier] A", aber nicht "[Tier]". – verdesmarald
Danke Jungs. Und ja, das hat funktioniert. Aber so viel wie ich kann, möchte ich nicht \ [verwenden, was passiert, wenn es andere Escape-Zeichen ist? Deshalb habe ich das Regex.Escape verwendet. – IPPO20jr