2016-05-04 6 views
0

konfigurieren Ich versuche, ein Build-System Free Dateien in Sublime Text3 und die file_regex Eigenschaft festlegen möchten, konfigurieren Sie die FehlermeldungenWie ein erhabener file_regex für * .bas-Dateien

{ 
"selector": "source.bas", 
"cmd": ["fbc.exe", "$file"], 
"file_regex": "..." 
} 

alle zu handhaben ich habe, ist so etwas wie dieses, aber es funktioniert nicht:

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

ich diese Fehlermeldungen analysieren möchten:

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 ... 

um meine Frage präziser zu machen. Ich muss den Dateinamen mit der Erweiterung in der ersten Gruppe und der Nummer in der zweiten Gruppe auffächern.

Könnten Sie mir bitte helfen, den richtigen file_regex zu finden ?!

+0

Ich habe versucht, die Datei_regex wie im zweiten Codeabschnitt '" file_regex "beschrieben:"^[A-Za-z0-9 \\\:] * \\ (. *) \ (([0-9 ] *) \ ("' – fraand

+0

Das '. *' Ist ein gieriges Punktabgleichmuster, es kann viel mehr zusammenpassen, als du erwartest. –

Antwort

0

Es waren zwei Fehler in Ihrem regex:

\/ist keine gültige Escape-Sequenz, die Slash brauchen nicht

die endgültige entkam werden Klammer entkommen öffnete \ (statt Schließung \) . Versuchen Sie es mit dieser:

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

Diese Regex tun:

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

Siehe regex demo:

enter image description here

Erläuterung:

  • ^ - Anfang einer Zeile/string
  • ([a-zA-Z]:(?:\\[^\\]+)*) - Gruppe 1 (Dateiname):
    • [a-zA-Z]: - ein Brief mit : gefolgt
    • (?:\\[^\\]+)* - einer wörtlichen Backslash \ gefolgt mit 1+ anderen Zeichen als a \.
  • \( - öffnende Klammer
  • (\d+) - 1+ Ziffern (Gruppe 2, Zeilennummer)
  • \) - eine geschlossene Klammer
  • error - passt ein Wort "Fehler" (um die Suche zu verankern)

HINWEIS: Sie könnten \ Schrägstriche verdoppeln müssen entkommen, um den pat zu machen Seeschwalbe (z.B. ^([a-zA-Z]:(?:\\\\[^\\\\]+)*)\\((\\d+)\\) error).

Verwandte Themen