2017-07-25 6 views
1

の先頭を削除する方法を私はgccのコンパイルの出力を解析する正規表現を持っています。正規表現は:パス

main.c:1156:13: error: invalid storage class 

それは

main.c 

をマークし、この入力用:

folder/main.c:1156:13: error: invalid storage class 

それは

folder/main.c 
01をマークし、この入力については、例えば

最初のサブ式を変更して、ファイル名だけにフルパスを付けないようにするにはどうすればよいですか?

答えて

1

私は(?:[^\r\n:]*/)?([^:\r\n]*)(..[^:]*)を置き換える提案:

^(?:[^\r\n:]*/)?([^:\r\n]*):([0-9]+):?([0-9]+)?:? (.*)$ 
^^^^^^^^^^^^^^^^^^^^^^^^^^ 

regex demo

変更部分マッチを参照してください: - :

    • (?:[^\r\n:]*/)?の1または0の出現を[^\r\n:]* - ゼロ以上:以外の文字、CRやLF、次いで
    • / - /チャー
  • ([^:\r\n]*) - グループ1::以外のゼロまたはそれ以上の文字、CRやLF