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

时间:2016-02-10 07:39:14

标签: c# regex

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

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

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

我得到的结果是只包含'&'个符号的字符串。 有人可以用这个正则表达式的东西帮助我,这对我来说有点混乱。谢谢!

3 个答案:

答案 0 :(得分:3)

我会使用常规字符串函数来执行此操作:

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

如果您真的想要使用正则表达式,那么您的函数有点不对,[^&]实际上意味着包含&。删除它,你会没事的。甚至没有必要把它放在括号之间,因为它不是正则表达式中的特殊字符。请记住,不要将正则表达式用于搜索一个字符和替换它等琐碎的事情,而是使用大锤来破解坚果。

答案 1 :(得分:1)

如果您想要更换,则无需使用IsMatch进行检查,如果没有出现,则不会替换。

另外一个简单的字符串替换就足够了,你不需要正则表达式来解决这个问题:

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

这就够了

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

^反转选择

答案 2 :(得分:1)

如果字符串中包含'&'字符,您就可以对字符串执行检查!

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

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