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

如何用VS Code正则查找无对应解答的题目?负向预查与捕获组问题

解决VS Code正则查找无对应解答题目的问题

你的正则不生效主要有三个核心问题:

  1. 贪婪匹配导致范围错误:.*\n+是贪婪模式,会直接吞掉题目之后的所有内容直到最后一个solution,完全打乱了你预期的匹配逻辑。
  2. 负向预查位置错误:(?!\1)紧跟在question后面,只会检查question之后的第一个字符是否不是捕获组1的内容,而不是检查完整的题目编号是否匹配。
  3. 匹配逻辑偏离需求:你要找的是「没有对应解答的题目」,但原正则试图匹配「题目+内容+不匹配的解答」,这和实际场景(无解答的题目后面要么是下一个题目,要么是文本结尾)不符。

修正后的正则表达式

针对你的需求,使用VS Code支持的ECMAScript正则语法,可用以下正则匹配所有无对应解答的题目:

question (\d+), chapter (\d+)\n(?:(?!solution for question \1, chapter \2).)*?(?=\nquestion |\Z)

正则逻辑说明

  • question (\d+), chapter (\d+):捕获题目编号和章节号,分别存入捕获组1和2。
  • (?:(?!solution for question \1, chapter \2).)*?:非贪婪匹配题目之后的所有内容,确保中间不会出现对应编号的解答(通过负向预查排除匹配的解答)。
  • (?=\nquestion |\Z):匹配到下一个题目开头或者文本结尾时停止,确保只捕获单个无解答的题目块。

使用步骤

  1. 在VS Code中打开搜索框(Ctrl+F),点击右侧的.*按钮开启正则模式。
  2. 输入上述正则表达式,即可高亮所有没有对应解答的题目内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:42:43