WindowsでLESSプリプロセッサ用のSublime Text 2ビルドシステムでエラーキャプチャを実装しようとしています。パスとエラー行番号を持つファイル名をグループ化した単一の正規表現が必要です。崇高なテキストのためのグループ化を伴う正規表現(rexep)2ビルドシステム
プリプロセッサの出力は以下の通りです:
file_regexオプションは、4つの分野にまでキャプチャするPerlスタイルの正規表現を使用しています。ここではERR: type: Parse message: Syntax Error on line 6 index: 131 filename: D:\workflow\less-css\test\test.less line: 6 extract: asd,}, [Finished]
はfile_regexオプションの正規表現のガイドラインでありますファイル名、行番号、列番号、エラー・メッセージなど、ビルド・プログラムの出力からのエラー情報を表示します。この情報を取得するには、パターン内のグループを使用します。ファイル名フィールドと行番号フィールドは必須です。
私は最近、正規表現を学ぶようになったので、どんな助けもありがとうございます。再度、regexpは2つのグループ項目を返します - ファイル名にはパスと行番号が含まれています。両方ともプリプロセッサ出力に存在します。
おかげで、 ステファン
'index'は列数とすることができるように私には発生します。うまくいけば、必要に応じて正規表現を展開してこのフィールドを含めることができますか?各フィールドのパターンは、ラベルテキストを除いて同じです。 – Borodin
残念ながら、注文が重要です。私は今、エラーメッセージをドロップしなければならないと思います。ファイルパスと行番号で十分です。また、この表現を正しくエスケープする方法をアドバイスできますか? config変数に割り当てられているので、Pythonのraw出力は不可能です。 – stefanlous
正規表現の実装で先読みアサーションが許可されている場合、この '/(?=.*ファイル名:\s+(.+?)\s*\n)(?=.*line:\s+(.+?) \ s * \ n)(?=。*メッセージ:\ s +(。+?)\ s * \ n)/ s'は、フィールドを正しい順序で返します。すべてのバックスラッシュを倍にするだけで、式をエスケープすることができます。 – Borodin