Как настроить возвышенный file_regex для *.bas-файлов
Я пытаюсь настроить систему сборки для файлов Freebasic в Sublime Text3 и хочу установить свойство 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 ответа
В вашем регулярном выражении было две ошибки:
\ / не является допустимой escape-последовательностью, косую черту не нужно экранировать
последняя исключенная скобка открывалась \(вместо закрывающейся \). Попробуйте с этим:
^[A-Za-z0-9\\/:]*\\(.*)\(([0-9]*)\)
Это регулярное выражение будет делать:
^([a-zA-Z]:(?:\\[^\\]+)*)\((\d+)\) error
Смотрите демо-версию регулярного выражения:
Объяснение:
^
- начало строки / строки([a-zA-Z]:(?:\\[^\\]+)*)
- Группа 1 (имя файла):[a-zA-Z]:
- письмо с последующим:
(?:\\[^\\]+)*
- буквальная обратная косая черта\
сопровождается 1+ символами, кроме\
,
\(
- открывающая скобка(\d+)
- 1+ цифр (группа 2, номер строки)\)
- закрывающая скобкаerror
- соответствует слову "ошибка" (для привязки поиска)
ПРИМЕЧАНИЕ: вам может понадобиться двойной побег \
обратная косая черта, чтобы заставить шаблон работать (например, ^([a-zA-Z]:(?:\\\\[^\\\\]+)*)\\((\\d+)\\) error
).