我正在做一个翻译项目.我遇到的一个问题是当我试图替换单词特殊字符时.
例如:
[Animal] can be furry.
Dog is an [Animal].
Run Code Online (Sandbox Code Playgroud)
我需要更换[Animal]用Animal.请注意,我只需要替换整个单词.所以结果如下:
Animal can be furry.
Dog is an Animal.
Run Code Online (Sandbox Code Playgroud)
而且,正如我所说的,它应该是整个词.所以,如果我有:
[Animal][Animal][Animal] can be furry. - 结果应该仍然是
[Animal][Animal][Animal] can be furry.- 什么也没发生,因为[Animal]不一样[Animal][Animal][Animal]
样品:
string originalText1 = "[Animal] can be furry";
string badText ="[Animal]";
string goodText = "Animal";
Regex.Replace(originalText1, Regex.Escape(badText), Regex.Escape(goodText));
Run Code Online (Sandbox Code Playgroud)
一切都好.但正如我所说,我需要替换整个词.并且使用上面的代码," [Animal]can be furry"将被替换为" Animalcan be furry",这是一个否定的.
所以我也尝试过:
Regex.Unescape(
Regex.Replace(
Regex.Escape(originalText1),
String.Format(@"\b{0}\b", Regex.Escape(badText)),
Regex.Escape(goodText)))
Run Code Online (Sandbox Code Playgroud)
但仍然无法奏效.而现在我迷路了.请帮忙.
我还想提一下几乎有类似的帖子,但这个问题并不需要仅替换整个单词.我在网上看了将近3个小时都无济于事.对你的帮助表示感谢.谢谢!
我还没有测试过,但我会尝试这个:
Regex.Replace(orginalText, @"\b\[Animal\]\b", "Animal");
Run Code Online (Sandbox Code Playgroud)
这只匹配单词边界处的 [Animal] (\b)