2

cancelEclipse で Grep コンソールを使用して、正規表現に基づくなどの文字を含むコンソール出力の行を強調表示しています。文字の前後に記号を付けたり、スペースで囲んだり、部分文字列にしたりすることができます。言い換えれば、次の行に一致させたいです (大文字と小文字に関係なく):

 The flight was cancelled.
 [Cancelled] Flight 101
 Are they going to cancel it?

これらの行を強調表示するために使用する必要がある正規表現は何ですか?

4

2 に答える 2

2

acdcjunior が既に説明したように、基本的には「キャンセル」に一致する大文字と小文字を区別しない正規表現が必要です。

コンソールに既に出力がある場合、この式を作成する最も簡単な方法は、出力で「キャンセル」という単語を選択し、右クリックしてコンテキスト メニューから [式の追加] を選択することです。サブメニューで、新しい式を追加するグループを選択するか、新しい式を作成します。次に、次の式を使用して式アイテムが作成されます。

(\Qcancel\E)

「大文字と小文字を区別する」チェックボックスを必ずオフにしてください。これは、パフォーマンス上の理由からデフォルトで有効になっており、式が 2 行目を大文字の「C」と一致させないようにします。

これは基本的に acdcjunior が提供する式と同じですが、いくつかの違いがあります。

.*式の先頭と末尾のマッチャーは必要ないため、含まれていません。$行の先頭または末尾を明確に参照するためにまたは^マッチャが使用されない限り、式は常に行内の任意の場所の部分文字列と一致します。

式は括弧で囲まれてキャプチャ グループを作成し、文字列を含む行全体だけでなく、cancelその文字列自体にもスタイルを割り当てることができます。その文字列のスタイルを設定したくない場合は、括弧を省略できます。

\Q選択し\Eた文字列から式を作成するときに常に含まれ、選択した文字列の文字が特殊な式の文字として解釈されないようにします。この場合、cancel単語の文字のみが含まれているため、これは必要ありません。

これは、あなたの場合、最も単純な十分な式は次のとおりであることを意味します。

cancel

この式は、acdcjunior が提案するように、「クイック式」として使用する場合にも機能しますが、これは実際には必要ありません。クイック式の背後にある考え方は、コンソールの行が非常に長いと、パターン マッチングが大幅に遅くなる可能性があるということです。そのため、Grep コンソールには、構成された式と一致する各行の文字数に対する構成可能な制限があります。長い行でこの制限を超える文字はすべて無視されます。つまり、制限の後にのみキーワードを含む行は認識されないため、スタイルが設定されません。

クイック表現を構成すると、最初にすべての行がこの表現と一致し、一致が肯定的な場合にのみ「通常の」表現が使用されます。この場合、式は行全体に対して照合されます。したがって、マッチングが遅くなりすぎないように、クイック式はできるだけ単純にする必要があります。

あなたの場合、cancelクイック式として使用し、通常の式を空白のままにしておくと、最初にクイック式が行に対して積極的に一致し、次に空白式も一致するため、機能します。ただし、行が非常に長い場合、クイック式は上記の長さの制限を無視するため、パフォーマンスが低下する可能性があります。また、クイック式はキャプチャ グループを使用しないためcancel、この場合、別のスタイルで文字列を強調表示することはできません。

于 2013-06-23T22:30:08.950 に答える
0

使用する:

.*(\Qcancel\E).*

また、「大文字と小文字を区別する」にはチェックを入れません。

またはcancel、「簡単な式」テキスト ボックスに入力します。

于 2013-06-21T19:43:52.957 に答える