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

正则表达式报错‘Invalid range in {}’问题排查求助

正则表达式报错‘Invalid range in {}’问题排查求助

嘿,刚看到你的问题,作为正则新手碰到这种报错确实挺懵的,我来帮你找找问题所在~

你遇到的「Invalid range in '{}'」错误,根源出在你写的functionPattern正则里。咱们来拆解一下:

C++的std::regex默认用的是ECMAScript风格的正则语法,在这种语法里,{是个特殊字符——它是用来定义重复次数的量词开头(比如a{3}表示匹配3个连续的a)。而你的正则最后一段是\s*{,这里的{你是想匹配代码里的左大括号,但因为没转义,正则引擎会误以为你要写一个量词规则,可后面又没有对应的数字或范围,自然就报“无效范围”的错了。

解决方法很简单,把正则里的{转义成\{就行,因为你用了C++的raw string(R"(...)"),所以直接写\{就可以表示正则里的转义左大括号,不用额外处理反斜杠的转义问题。

修改后的functionPattern应该是这样的:

const regex functionPattern(R"((\w+)\s+(\w+)\s*\(([^)]*)\)\s*\{)");

另外我帮你检查了variablePattern,这个正则里的符号都是正常的,没有类似的问题,不用改。

你把代码里的正则改完再运行,应该就能解决这个报错啦~

备注:内容来源于stack exchange,提问作者sech1p

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 02:52:59