codegeex可基于自然语言生成多层嵌套括号正则骨架,支持中英文标点与转义处理,需配合regex101验证并人工优化四步:转义字面括号、限定中文标点范围、排除反斜杠、防止未配对引号。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要快速写出能准确匹配多层嵌套括号、带转义字符且区分中英文标点的正则表达式,但手动调试耗时长、容易漏掉边界情况。CodeGeeX 能基于自然语言描述生成可运行的正则模板,并支持在本地环境实时验证捕获逻辑与替换效果。
安装并启动 CodeGeeX 插件
打开 VS Code → 点击左侧扩展图标 → 搜索「CodeGeex」→ 点击「Install」安装官方插件 → 安装完成后重启编辑器。
首次启动需配置模型服务:点击右下角状态栏「CodeGeex」图标 → 选择「Start Local Server」→ 等待控制台输出「Server ready on http://127.0.0.1:8080」后即可使用。若未自动弹出服务窗口,请手动访问该地址确认服务已就绪。
用自然语言描述需求生成正则骨架
新建一个 .txt 文件,输入如下描述:
「匹配形如 (abc[def]{ghi}) 的嵌套括号结构,支持圆括号、方括号、花括号三层任意嵌套,忽略中间空格,但要求最外层必须是圆括号;内部字符串允许含中文、英文、数字及常见标点(不包括反斜杠和未配对引号)」
选中整段文字 → 右键 → 选择「CodeGeex: Generate Regex from Selection」→ 等待几秒,光标处将插入类似 (([^()[]{}]*?(?:[(?:[^[]]|[[^[]]*?])*?]|{(?:[^{}]|{[^{}]*?})*?}|([^()[]{}]*?))*?[^()[]{}]*?)) 的表达式。
这一步生成的是可工作的基础骨架,不是最终成品——它未处理转义、未限制中文标点范围、也未排除反斜杠,【后续必须人工校验】。
在 Regex101 中导入并实时验证
方法一:直接粘贴验证
打开 regex101.com → 左上角 Language 选「Python」→ 将 CodeGeex 生成的正则粘贴到正则框 → 在 Test String 区域输入测试文本,例如:(a[b{c}d]e) 和 [x(y)z] → 观察右侧 Match Information 是否只高亮第一个字符串。
方法二:启用 Substitution 实时看替换效果
点击「Substitution」标签页 → 在 Replace 框输入 <span>$0</span> → 若原始正则未开启全局匹配(g 标志),则只会替换第一个匹配项;【务必勾选 g 和 s 标志】,否则多行文本中的换行符无法被 . 匹配,导致嵌套跨行时失败。
四步人工优化正则表达式
第一步:转义处理
检查生成正则中所有字面量括号(如 (、[、{)是否已正确加反斜杠;若未加,需补全为 (、[、{,否则在 Python 中会触发 SyntaxError。
第二步:限定中文标点范围
将模糊的 [u4e00-u9fa5] 替换为明确集合,例如 [u4e00-u9fa5u3001-u3002uff0cuff0euff1buff1au201cu201du2018u2019u300au300bu3008u3009],避免误匹配全角 ASCII 符号。
第三步:排除反斜杠
在字符类中显式加入 [^\] 或 (? 前置断言,防止匹配到 <code>( 这类转义括号,否则会导致嵌套逻辑错乱。
第四步:排除未配对引号
在主匹配模式末尾添加负向先行断言 (?![^'"]*['"]$),确保结尾不悬空单/双引号;否则 (a"b) 会被错误捕获。











