2011-07-27 12 views
0

まったく単純なタスクです。一致が見つからない場合は、行を表示する必要があります。または、別の言い方をすると、一致が見つかった場合は、行を表示しないでください。私はこれが何らかの種類のアサーションを見越していると思われますが、どのように考え出すことはできません。正規表現は、式が一致しない場合に結果を表示します

私は試合を見つけて試してみました。それから^で否定しようとしました。しかし、それは動作していないようです。また、一致を見つけてその横に{0}を置いてみました:(wordhere){0}

+1

一致するものが見つからない場合は、行を表示しないでください。 –

+0

どの言語を使用していますか?あなたはあなたの言語論理否定演算子(おそらく '!')を使って、一致結果を逆変換してから出力することはできませんか? – Paulpro

+0

正規表現はあまり一致しない行を表示するだけではあまり良くありません。実際には、たとえあなたが何行目の番号になっているかを知る良い方法があるかどうかはわかりません。 \ r \ nでファイルを配列に分割し、各行で正規表現を実行し、一致する場合はスキップしなければならない場合があります。一致しない場合は、別の配列に行番号を追加します。次に、2つの配列があります.1つはデータ、もう1つは一致しなかった行番号です。 – Brain2000

答えて

2

実際には否定的な先読みを使用することができます。例えば。

^(?!something$).*$ 

は、「何か」以外のものと一致します。

ただし、一致が正しければ、if not ...のような制御構造を使用して、印刷する行と印刷しない行を定義する方が、はるかに適切で読みやすい可能性があります。

0

あなたはグレップを使用できる場合、

grep -v <expr> 

は何をしたいん。