2017-08-02 167 views
-1

Windowsセキュリティイベント4740 - ユーザーアカウントロックアウトの呼び出し元コンピュータ名をキャプチャするための正規表現をSIEMで作成しました。null文字列を扱う正規表現

問題は、「発信者のコンピュータ名」フィールドにnull値または空の値があり、正規表現がそれを考慮しないことがあることです。残りの影響は、空白の値でイベントが捕捉されるたびに、私のカスタム電子メール通知で構文上の問題が発生していることです。

Caller Computer Name:\s+([^ ]+) 

Caller Computer Name:の第二の発生が発見されていないが、私はその部分文字列を検索する:

はRegex101にlinkを参照してください。どのようにしてどちらの条件を説明する正規表現を書くのですか?価値があるかどうか。

答えて

1

*は、文字列の後に文字がない場合は0以上のオーブンに一致するため、空白の値がある場合、正規表現は一致します。

/Caller Computer Name:\s*[^ ]*/ 
+0

私はこれをキャプチャグループとしてラップし、電子メール通知でxmlの問題を解決したようです。 「空白」と表示されていないフィールド。 '呼び出し元のコンピュータ名:(\ s * [^] *)' – Heisenberg

+0

[Regex demo](https://regex101.com/r/9T7Ww3/1) – Heisenberg

2

使用

Caller Computer Name:\s*(\S*) 

\S*試合0以上の非空白文字。

regex demoを参照してください。

フルパターンはの詳細:

  • Caller Computer Name: - リテラルCaller Computer Name:サブ
  • \s*から0以上の空白文字
  • (\S*) - 捕捉グループ#1以外の0個以上の文字にマッチします空白。

注Javaで(\S+)?(\S*)差がある:値がない場合は、最初のグループは、nullになり、2つ目は、空の文字列で初期化されます。

+0

"s * - 1つ以上の空白文字"のタイプミス。 0以上である必要があります –