2017-06-02 7 views
1

なぜWinMergeは1行を無視しますが、もう1行は無視しませんか?私は2つの異なるファイルを比較していて、これらのラインフィルタを使用しています

  • ^'から'文字で
  • ^[ |\t]*//を開始する行を無視する - ゼロ以上のスペースまたはタブを開始する行を無視し、進め//
  • [\/\/]+.* - 任意の数の文字で進められた行を無視します(唯一の制限は改行です)。

    がなぜ最初のcase文が無視されていることが、もう一つはありません:

しかし、無視する行動が矛盾しているようですか?

私は推測している...それが割り当てられている文字列の/とは何かを持っていますが、私の第三のラインフィルタは、明示的にができないなければならないように2 //問題を探し

+0

あなたは '[\/\ /] +。*'があなたの考えていることを確信していますか? –

+1

'[\/\ /] +。*'は、行の最後に/と一致します。 []は「このグループのなにか」で、/文字を2回だけリストしているだけです。だから、マッチを作るのに2番目の/を必要としません。これは '\ /.*' – Tezra

+1

@ sab669 '(\/\ /)+。*'と '/'が行の最後に一致する(。* makes + redundant)と同等です。しかし、それはおそらくあなたが望んだものです。 (冗長性ではなく '()') – Tezra

答えて

1

[\/\/]+.*行の末尾に/と一致します。 []は「このグループのなにか」で、/文字を2回だけリストしているだけです。だから、マッチを作るのに2番目の/を必要としません。 \/.*

(\/\/)+.*は、行末(。*が+冗長)に一致します。しかし、それはおそらくあなたが望んだものです。 ([]は冗長ではなく)\/\/.*

+0

@ sab669解説へのコメント説明をラップしました。 :3 – Tezra

関連する問題