Как настроить возвышенный 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).

Другие вопросы по тегам