2016-09-19 96 views
1

我试图捕捉错误在崇高的文本3编码时,我得到的错误是这样的:捕获错误3

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

我正则表达式捕获码是

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

其中根据this文件应是正确的,除了没有列号来捕获。

每当我试着用这个正则表达式是错误的崇高输出

str expected, not dict 

我在做什么错误的运行错误的代码?

+0

准确的错误输入是什么?您可以逼真地让行/列号可选, ([0-9] *)? –

+0

我不认为它允许正斜杠包装RegEx,正如您通常会做的那样 – idleberg

+2

请编辑您的问题以添加更多细节请创建一个[mcve]。添加示例代码(包括语言)和构建系统的内容,以便测试其行为。请说明错误的打印位置,以及是否还有其他内容。你还应该指出你在哪里放置''result_file_regex'''设置。基本上,你应该允许我们彻底重建你正在做的事情。 – MattDMo

回答

0

result_file_regex 甲Perl样式的正则表达式来捕获到的从结果来看,即误差信息四个字段:文件名,行号,列号和错误消息。使用模式中的组来捕获这些信息。文件名字段和行号字段是必需的。

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: (.+)$" 

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

+0

这太棒了!非常感谢! – Squeek