You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#含特殊字符字符串计数问题:正则匹配右括号不足报错

解决正则匹配带特殊字符字符串时的参数错误问题

别慌!这个问题我踩过同款坑~你遇到的错误是因为正则表达式里的特殊字符没有被转义导致的。

问题原因

你要搜索的字符串Nachricht erhalten (里包含(,而(在正则语法中是用来定义分组的特殊元字符,不是普通的文本字符。当正则引擎解析到这个未闭合的(时,会认为你的正则语法不完整(缺少对应的)),所以抛出System.ArgumentException错误。

解决方案

最稳妥的方式是把用户输入的搜索词自动转义成正则安全的字符串,用.NET里的Regex.Escape()方法就能搞定——它会自动把所有正则特殊字符(比如(, ), *, .这些)转义成普通文本字符。修改后的代码如下:

count = Regex.Matches(_editor.Text, Regex.Escape(txtLookFor.Text), RegexOptions.IgnoreCase).Count;

如果只是临时处理单个符号,你也可以手动给(加转义符,写成Nachricht erhalten \(,但显然自动转义的方式更通用——不管用户输入什么带特殊符号的搜索词,都能完美适配,不会再出现语法错误。

之前的搜索词没有包含正则特殊字符,所以代码能正常运行,这次的括号刚好触发了正则的语法校验,才暴露了这个问题~

内容的提问来源于stack exchange,提问作者Soeren3003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 14:17:42