正则表达式(多行)- 仅当所有行不包含 $ 时才匹配
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|$)).*
此模式使用否定前瞻来确保没有不带 $ 字符的帐户名称,然后只匹配整个文本。
我需要正则表达式方面的帮助。 我有这样的文本,其中包含几行:
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|$)).*
此模式使用否定前瞻来确保没有不带 $ 字符的帐户名称,然后只匹配整个文本。