我正在尝试在字符串中找到'&'
字符,并使用正则表达式将其与"and"
字符串切换,但我显然做错了。
这是检查是否存在'&'
符号的代码的一部分,如果有符号,则应将其更改为"and"
。
if (Regex.IsMatch(toCheck, @"[^&]"))
return Regex.Replace(toCheck, @"[^&]", "and");
我得到的结果是只包含'&'
个符号的字符串。
有人可以用这个正则表达式的东西帮助我,这对我来说有点混乱。谢谢!
答案 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我有一个链接给你,你可以在这里简单地学习正则表达式!