0

我正在尝试在 Sublime Text3 中为 Freebasic 文件配置构建系统,并希望设置 file_regex 属性来处理错误消息

{
"selector": "source.bas",
"cmd": ["fbc.exe", "$file"],
"file_regex": "..."
}

我所拥有的只是这样的东西,但它不起作用:

"file_regex": "^[A-Za-z0-9\\\/:]*\\(.*)\(([0-9]*)\("

我想解析这个错误信息:

C:\projekte\privat\freebasic\test.bas(24) error 3: Expected End-of-Line, found ...
C:\projekte\privat\freebasic\test.bas(25) error 41: Variable not declared, This ....
C:\projekte\privat\freebasic\test.bas(26) error 9: Expected expression, found ...
C:\projekte\privat\freebasic\test.bas(27) error 9: Expected expression, found ...

使我的问题更准确。我必须摸索第一组中带有扩展名的文件名和第二组中的行号。

你能帮我找到正确的file_regex吗?!

4

2 回答 2

0

此正则表达式将执行以下操作:

^([a-zA-Z]:(?:\\[^\\]+)*)\((\d+)\) error

请参阅正则表达式演示

在此处输入图像描述

解释:

  • ^- 行/字符串的开始
  • ([a-zA-Z]:(?:\\[^\\]+)*)- 第 1 组(文件名):
    • [a-zA-Z]:- 一个字母后跟:
    • (?:\\[^\\]+)*- 文字反斜杠\后跟 1+ 个字符,而不是\.
  • \(- 左括号
  • (\d+)- 1+ 位(第 2 组,行号)
  • \)- 右括号
  • error- 匹配单词“error”(锚定搜索)

注意:您可能需要双转义\反斜杠才能使模式正常工作(例如^([a-zA-Z]:(?:\\\\[^\\\\]+)*)\\((\\d+)\\) error)。

于 2016-05-04T21:49:28.840 回答
0

您的正则表达式中有两个错误:

\/ 不是有效的转义序列,斜杠不需要转义

最后的转义括号是打开 \( 而不是关闭 \)。试试这个:

^[A-Za-z0-9\\/:]*\\(.*)\(([0-9]*)\)
于 2016-05-04T21:09:20.917 回答