正则表达式(多行)- 仅当所有行不包含 $ 时才匹配

regex (multiline) - match only if all lines do not contain $

我需要正则表达式方面的帮助。 我有这样的文本,其中包含几行:

Message=A logon was attempted using explicit credentials.

Subject:
    Security ID:        NT AUTHORITY\SYSTEM
    Account Name:       SERVER1$
    Account Domain:     EXAMPLE.ORG
    Logon ID:       0x3E7
    Logon GUID:     {00000000-0000-0000-0000-000000000000}

Account Whose Credentials Were Used:
    Account Name:       user1
    Account Domain:     EXAMPLE.ORG
    Logon GUID:     {15CEA50D-0E2C-2FFC-6FDF-46CDFC48AE34}

Target Server:
    Target Server Name: localhost
    Additional Information: localhost

Process Information:
    Process ID:     0x38e0
    Process Name:       C:\Windows\System32\winlogon.exe

Network Information:
    Network Address:    10.9.8.7
    Port:           0

我需要一个匹配整个消息的正则表达式,如果所有字符串都带有

 Account Name:

行后跟带有“$”的文本

在此示例中,有两行带有 "Account Name:" - 一行包含 '$',第二行没有,因此不应匹配。如果有一行或多行带有"Account Name:",但它们都包含'$'则匹配

我尝试过不同的方法:

(?s)Account Name:\s+(?!($))\n.*

但没能实现我的目标。

你可以使用这个:

(?s)^(?!.*\bAccount Name:[^$\n]*(?:\n|$)).*

此模式使用否定前瞻来确保没有不带 $ 字符的帐户名称,然后只匹配整个文本。