2017-08-16 3 views
1

、いくつかのデータをキャプチャ:正規表現だけで、私は次の行からいくつかのデータをキャプチャするために正規表現を使用しようとしているすべてではないそれらの

[*] 0.0.0.0:80 Cannot reliably check exploitability. 

[-] {peer} - Check failed: The following options failed to validate: USERNAME, PASSWORD. 

[*] 0.0.0.0:80 The target is not exploitable. 

私が使用している正規表現は次のとおりです。

^\[.\].*\s([A-Z]{1}.*$) 

問題は、それが(キャプチャグループのために)、その結果ということです:

Cannot reliably check exploitability. 
PASSWORD. 
The target is not exploitable. 

私は何をキャプチャすることは、それがもののトンのためのすべてのテキストに動作しています帽子はそれらでipのを持っていますが、それはちょっと上のプもう一つ、私は真ん中の1があることを必要とするものである:

Check failed: The following options failed to validate: USERNAME, PASSWORD. 

私はなぜそれが適切に真ん中をキャプチャしませんか分かりません。

これはgawkにとって重要なことです。

+1

試してみてください^^ [^] [^ AZ] * \ s([AZ]。* $) ' –

+0

パーフェクト!ありがとう – Thermatix

+0

'gawk'は単なる' awk'の実装です。あなたが 'gawk'に加えて' awk'であなたの質問にタグを付けると、あなたはそれらを読んでいる人々を大幅に増やし、すぐに複数の答えを得るでしょう。 –

答えて

1

グレディー.*のパターンで、正規表現が空白の後に最後の大文字に一致するため、2番目のパターンが正しく動作しません。

代わり.*[^A-Z]*を使用することがあります。

^\[.\][^A-Z]*\s([A-Z].*)$ 
     ^^^^^^^ 

詳細

  • ^ - ラインの開始
  • \[から[
  • . - 任意の文字
  • \] - ]
  • [^A-Z]* - ASCII大文字以外の任意の0+文字
  • \s - 空白
  • ([A-Z].*) - グループ1:大文字のASCII文字と行の残り
  • $ - 末尾の行
関連する問題