求能检测字符串含单引号或大括号的正则表达式
解决方案
你的需求是验证字符串是否包含单引号(')或大括号({}),包含则返回true,但当前使用的正则表达式逻辑完全相反。
问题分析
你当前的正则^[^'{}]*$的作用是:匹配完全不包含'、{、}的字符串。也就是说,只有当输入字符串里没有这些字符时,IsMatch才会返回true,这和你的需求正好相反。
正确的正则表达式
要匹配包含'、{或}中任意一个字符的字符串,使用以下正则即可:
['{}]
这个正则会在字符串中找到任意一个目标字符时匹配成功,直接满足“包含指定字符则返回true”的需求。
修正后的代码
Regex regex = new Regex(@"['{}]"); if (regex.IsMatch("a'a{ddd}")) throw new Exception("Invalid string.");
此时,当输入字符串包含'、{或}时,IsMatch返回true,会触发异常抛出,符合你对无效字符串的判定逻辑。
内容的提问来源于stack exchange,提问作者Rahul Nagrale
相关产品推荐
相关产品推荐

