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

时间:2016-09-19 15:36:36

标签: regex build system sublimetext3 capture

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

KeyError: 'web'

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

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

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

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

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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

<强> result_file_regex       一种Perl样式的正则表达式,用于从结果视图中捕获最多四个错误信息字段,即:文件名,行号,列号和错误消息。使用模式中的组来捕获此信息。文件名字段和行号字段是必需的。

     

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

它说&#34; result_file_regex&#34;在文档中,但这是错误的,构建的关键&#34; file_regex&#34;。

我们如何匹配:

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

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

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

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

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

以上内容与文件名,行号和可选列号相匹配。

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

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