如何为* .bas-files配置sublime file_regex

时间:2016-05-04 13:56:37

标签: regex sublimetext3 sublime-build

我尝试在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吗?!

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

这个正则表达式将会:

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

请参阅regex demo

enter image description here

说明:

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

注意:您可能需要加倍转义 error反斜杠以使模式有效(例如\)。