【发布时间】:2012-10-15 11:54:23
【问题描述】:
我现在正在处理一个翻译项目。 我遇到的问题之一是当我尝试替换单词特殊字符时。
例如:
[Animal] can be furry.
Dog is an [Animal].
我需要将[Animal] 替换为Animal。请注意,我只需要替换整个单词。所以结果应该如下:
Animal can be furry.
Dog is an Animal.
另外,正如我所说,它应该是整个词。所以如果我有:
[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));
一切正常。但正如我所说,我需要替换整个词。使用上面的代码,“[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)))
虽然还是不行。现在我迷路了。请帮忙。
我还想提一下,几乎有一个类似的帖子,但这个问题不需要只替换整个单词。我已经在网上查看了将近 3 个小时,但无济于事。对你的帮助表示感谢。谢谢!
【问题讨论】:
标签: c#