1

以下 Tasks.json 问题匹配器正则表达式应匹配以下典型警告。但事实并非如此。ctc W505:[“somedirectory/somefile.c”350/18] 隐式声明等等等等

问题是什么?我验证了内置解析器匹配 gcc 输出错误和警告。

谢谢,

萨蒂什·K

"tasks": [
        {
            "label": "build.bat",
            "type": "shell",
            "command": "build.bat",
            "problemMatcher": {
                "owner": "cpptools",
                "fileLocation": [
                    "relative",
                    "${env:PWD}"
                ],
                "pattern": {
                    "regexp": "^ctc W(\\d+): \\[\\\"(.*)\\\" (\\d+)\\\/(\\d+)\\] (.*)$",
                    "file": 2,
                    "line": 3,
                    "column": 4,
                    "message": 5
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
4

2 回答 2

1

我无法让它工作。但是我通过 json escpare 运行了工作 regex101。它做了更多的斜线转义,结果如下:

"regexp": "^ctc W(\\d+): \\[\\\"(.*)\\\" (\\d+)\\/(\\d+)\\] (.*)$",
于 2021-02-09T10:56:20.260 回答
1

您在表达式中添加了一个附加项\,您只需要转义"而不需要转义/

"tasks": [
        {
            "label": "build.bat",
            "type": "shell",
            "command": "build.bat",
            "problemMatcher": {
                "owner": "cpptools",
                "fileLocation": [
                    "relative",
                    "${env:PWD}"
                ],
                "pattern": {
                    "regexp": "^ctc W(\\d+): \\[\"(.*)\" (\\d+)/(\\d+)\\] (.*)$",
                    "file": 2,
                    "line": 3,
                    "column": 4,
                    "message": 5
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]


编辑

这适用于 regex101(风格 Javascript)

^ctc W(\d+): \["(.*)" (\d+)\/(\d+)\] (.*)$

要将其转换为 JSON 字符串,转义\"和正则表达式也希望您转义/,但只有在文字 Javascript(如 )中使用正则表达式时才需/\d+/g要这样做,但我们不会在 VSC 中这样做,但它不会受到伤害.

导致:

"^ctc W(\\d+): \\[\"(.*)\" (\\d+)\\/(\\d+)\\] (.*)$"
于 2020-04-20T02:42:02.970 回答