C# 使用正则表达式替换而不是字符串替换

C# 使用正则表达式替换而不是字符串替换,c#,asp.net,regex,C#,Asp.net,Regex,我对Regex的了解并不像我应该的那样多,所以这似乎是一个愚蠢的问题 我正在使用.Split“”将字符串拆分为字符串[]。 目的是检查单词,或替换任何单词 我现在遇到的问题是,对于要替换的单词,它必须是精确匹配的,但是按照我拆分它的方式,可能会有一个or[与拆分的单词匹配] 到目前为止,为了解决这个问题,我使用了如下方法: 格式文本。替换>,>。替换我的东西这正是你想要的 如果要替换这些->;\/:*?|&'符号 string input = "(exam;\\/:*?\"<>|&a

我对Regex的了解并不像我应该的那样多,所以这似乎是一个愚蠢的问题

我正在使用.Split“”将字符串拆分为字符串[]。 目的是检查单词,或替换任何单词

我现在遇到的问题是,对于要替换的单词,它必须是精确匹配的,但是按照我拆分它的方式,可能会有一个or[与拆分的单词匹配]

到目前为止,为了解决这个问题,我使用了如下方法:
格式文本。替换>,>。替换我的东西这正是你想要的

如果要替换这些->;\/:*?|&'符号

string input = "(exam;\\/:*?\"<>|&'ple)";
        Regex reg = new Regex("[;\\/:*?\"<>|&']");
        string result = reg.Replace(input, delegate(Match m)
        {
            return " " + m.Value + " ";
        });

我想这是你想要的

如果要替换这些->;\/:*?|&'符号

string input = "(exam;\\/:*?\"<>|&'ple)";
        Regex reg = new Regex("[;\\/:*?\"<>|&']");
        string result = reg.Replace(input, delegate(Match m)
        {
            return " " + m.Value + " ";
        });

如果要替换整个单词,可以使用如下正则表达式

string text = "This is an example (example) noexample";
string newText = Regex.Replace(text, @"\bexample\b", "!foo!");
newText将包含一个!foo!!foo!noexample


这里的关键是\b是分词元字符。因此,它将在一行的开头或结尾匹配,以及单词字符\w和非单词字符\w之间的转换。它与使用\w或\w之间的最大区别是,这些字符在行的开头或结尾不匹配。

如果要替换整个单词,请可以用这样的正则表达式来实现

string text = "This is an example (example) noexample";
string newText = Regex.Replace(text, @"\bexample\b", "!foo!");
newText将包含一个!foo!!foo!noexample


这里的关键是\b是分词元字符。因此它将在一行的开头或结尾匹配,以及单词字符\w和非单词字符\w之间的转换。它与使用\w或\w之间的最大区别是,这些字符在行的开头或结尾不匹配。

我想我不理解这个问题。w你需要用什么替换这些特殊字符?如果你展示一个示例字符串,这会有所帮助。如果你想从字符串中提取所有单词,我想这应该是你问题的答案:@Chirag64抱歉-更新了它。如果你只对单词感兴趣,而不是字符串的结构,那么你考虑过ju吗st将所有特殊字符替换为空格,或将其全部删除?您可以使用环视功能将任何不相邻空格的特殊字符替换为空格,然后删除所有其他字符。抱歉,回复太晚。我需要结构得体。我想我不明白这个问题。您不需要这些特殊字符吗o替换为?如果您展示一个示例字符串,这会有所帮助。如果您想从字符串中提取所有单词,我想这应该是您问题的答案:@Chirag64抱歉-更新了它。如果您只对单词感兴趣,而不是字符串的结构和内容,您是否考虑过只替换所有特殊字符是空格,还是将它们全部删除?您可以使用环视功能将任何不与空格相邻的特殊字符替换为空格,然后删除所有其他字符。很抱歉,回复太晚。我需要适当的结构。