在 Sublime Text 3 中使用正则表达式捕获 sublime 构建文件中的错误

Capturing errors in sublime build file using regex in Sublime Text 3

我正在尝试捕获在 Sublime Text 3 中编码时遇到的错误。错误如下所示:

filename.extension:lineNumber: error: "The error message"
            Code that = is.wrong();
                          ^  <--Arrow pointing to the error

我的正则表达式捕获代码是

"result_file_regex": "^(...*?):([0-9]*): error: (.*)"

根据 this 文档应该是正确的,只是没有要捕获的列号。

每当我尝试 运行 使用此正则表达式的错误代码时,它都会错误地输出到 sublime 输出

str expected, not dict

我做错了什么?

result_file_regex A Perl-style regular expression to capture up to four fields of error information from a results view, namely: filename, line number, column number and error message. Use groups in the pattern to capture this information. The filename field and the line number field are required.

http://docs.sublimetext.info/en/latest/reference/build_systems/configuration.html?highlight=result_file_regex

它在文档中说 "result_file_regex",但这是错误的,构建 "file_regex".

的密钥

我们如何匹配像这样的东西:

filename.extension:lineNumber: error: "The error message"

让我们从最简单的匹配开始,文件名和行号:

"file_regex": "^([^:]+):([0-9]+):.*$"

以上匹配文件名和行号(两次匹配)。

"file_regex": "^([^:]+):([0-9]+):([0-9]+)?.*$"

以上匹配文件名、行号和可选的列号。

"file_regex": "^([^:]+):([0-9]+):([0-9]+)? error: (.+)$"

以上匹配所有四个元素:文件名、行号、列号(可选)和错误消息。