我正在尝试为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吗?!
发布于 2016-05-05 05:09:21
您的正则表达式中有两个错误:
\/不是有效的转义序列,斜杠不需要转义
最后一个转义括号是开始(而不是结束)。试试这个:
^[A-Za-z0-9\\/:]*\\(.*)\(([0-9]*)\)发布于 2016-05-05 05:49:29
此正则表达式将执行以下操作:
^([a-zA-Z]:(?:\\[^\\]+)*)\((\d+)\) error请参阅regex demo

解释:
^ - line/string([a-zA-Z]:(?:\\[^\\]+)*)的开始-组1(文件名):[a-zA-Z]: -字母,后跟:(?:\\[^\\]+)* -文字反斜杠\,后跟1+字符,而不是\.
\( -开始错误-错误数字(组2,行number)\) -a结束错误-匹配单词“parenthesis(\d+)”(锚定搜索)注:您可能需要对\反斜杠进行双重转义才能使模式工作(例如^([a-zA-Z]:(?:\\\\[^\\\\]+)*)\\((\\d+)\\) error)。
https://stackoverflow.com/questions/37029945
复制相似问题