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

PEG.js变量名语法异常:误匹配方括号等非预期字符

问题原因与解决方案

核心问题:正则范围[A-z]的错误

你定义的Varname规则[A-z0-9]+会匹配[和],本质是ASCII码中大写字母Z(ASCII 90)与小写字母a(ASCII 97)之间存在6个非字母符号,其中就包含[(91)、](93)。[A-z]的范围是从ASCII 65(A)到122(z),自然覆盖了这些符号,导致test[被当成完整变量名匹配,触发“变量不存在”的错误。

修复方案

将Varname规则的正则改为严格匹配大小写字母和数字:

Varname = [A-Za-z0-9]+

如果你的语言支持下划线作为变量名组成部分(符合多数编程语言惯例),可进一步调整为:

Varname = [A-Za-z_][A-Za-z0-9_]*

这样就能确保只匹配合法变量名,不会错误捕获[、]这类符号。

效果验证

修复后解析test["foobar"]时,PEG.js会正确识别test为变量名,随后进入属性访问逻辑处理["foobar"]部分,最终返回预期的"it worked"结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:12:05