我正在尝试为VSCode内的构建任务设置problemMatcher,该命令生成如下消息:
14 : ../../Dsrc/path/to/file.h:44:58: error: class ‘tf::ARandomClass’ does not have any field named ‘epsilon’
使用https://regex101.com/我构建了一个如下表达式来构建问题匹配器:../../Dsrc/(.*?):(.*?):(.*?): (.*?): (.*?)$
然而,VS代码中的以下问题匹配器不起作用:
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "../../Dsrc/(.*?):(.*?):(.*?): (.*?): (.*?)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
即使我删除了../../Dsrc/
部分,它似乎确实与终端内的任何内容相匹配。我做错了什么?
尝试regex:
^d+s*:s*([^:]+):(d+):(d+): (.*?): (.*?)$
因为配置文件是JSON,所以您需要在regexp
值中转义(即,将反斜杠加倍(:
"regexp": "\.\.\/\.\.\/Dsrc\/(.*?):(.*?):(.*?): (.*?): (.*?)$",