相关疑难解决方法(0)

如何使用Regex.Replace用Word替换[Word]并且应该仅替换整个单词

我正在做一个翻译项目.我遇到的一个问题是当我试图替换单词特殊字符时.

例如:

[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个小时都无济于事.对你的帮助表示感谢.谢谢!

c#

7
推荐指数
1
解决办法
418
查看次数

正则表达式匹配整个单词与特殊字符不起作用?

我正在经历这个问题 C#,Regex.Match整个单词

它说匹配整个单词使用"\ bpattern\b" 这适用于匹配整个单词而没有任何特殊字符,因为它仅用于单词字符!

我需要一个表达式来匹配带有特殊字符的单词.我的代码如下

class Program
{
    static void Main(string[] args)
    {
        string str = Regex.Escape("Hi temp% dkfsfdf hi");
        string pattern = Regex.Escape("temp%");
        var matches = Regex.Matches(str, "\\b" + pattern + "\\b" , RegexOptions.IgnoreCase);
        int count = matches.Count;
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于%,它失败了.我们有解决方法吗? 可以有其他特殊字符,如'space','(',')'等

.net c# regex escaping

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

.net ×1

escaping ×1

regex ×1