我尝试在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吗?!
答案 0 :(得分:0)
你的正则表达式中有两个错误:
\ /不是有效的转义序列,斜杠不需要转义
最终的转义括号是打开\(而不是关闭\)。 试试这个:
^[A-Za-z0-9\\/:]*\\(.*)\(([0-9]*)\)
答案 1 :(得分:0)
这个正则表达式将会:
^([a-zA-Z]:(?:\\[^\\]+)*)\((\d+)\) error
请参阅regex demo:
说明:
^
- 开始行/字符串([a-zA-Z]:(?:\\[^\\]+)*)
- 第1组(文件名):
[a-zA-Z]:
- 后跟:
(?:\\[^\\]+)*
- 字面反斜杠\
后跟1 {+ 1}以外的1个字符。\
- 左括号\(
- 1+位(第2组,行号)(\d+)
- 右括号\)
- 匹配单词“error”(以锚定搜索) 注意:您可能需要加倍转义 error
反斜杠以使模式有效(例如\
)。