在字符串中查找特殊字符并使用 C# 中的正则表达式进行更改

本文关键字:正则表达式 查找 字符串 特殊字符 | 更新日期: 2023-09-27 18:34:02

我试图在我的字符串中找到'&'字符并使用正则表达式将其与"and"字符串切换,但我显然做错了。

这是代码的一部分,用于检查是否存在'&'符号,如果有,则应将其更改为 "and"

if (Regex.IsMatch(toCheck, @"[^&]"))
   return Regex.Replace(toCheck, @"[^&]", "and");

我得到的结果是只包含'&'符号的字符串。有人可以帮我解决这个正则表达式的事情吗,这让我有点困惑。谢谢!

在字符串中查找特殊字符并使用 C# 中的正则表达式进行更改

我只会使用常规字符串函数来做到这一点:

return toCheck.Replace("&","and");

如果你真的想用正则表达式来做,你的函数有点错误,[^&]实际上意味着不包含&。删除它,你会没事的。甚至没有必要把它放在括号之间,因为它不是正则表达式中的特殊字符。请记住不要将正则表达式用于琐碎的事情,例如搜索一个字符并替换它,它是使用大锤来敲开螺母。

如果您想

替换,您无需检查 IsMatch,如果没有发生,它就不会替换。

此外,一个简单的字符串替换就足够了,您不需要正则表达式即可解决此问题:

Console.WriteLine("Hello&World&Mars".Replace("&", " and "));

这就够了

[^&] 表示所有不等于 & 的字符

^ 反转选择

这是您对字符串是否包含"&"字符进行检查的方式!

      if(Regex.IsMatch(toCheck,@"[&]"))
        //do whatever you want to

虽然,有很多讨论正则表达式的主题,你可以访问其中任何一个,在这里我有一个链接给你,你可以在这里简要学习正则表达式!