Regex 正则表达式(多行)-仅当所有行不包含$
我需要一个正则表达式的帮助。 我有一个这样的文本,包含几行:Regex 正则表达式(多行)-仅当所有行不包含$,regex,multiline,Regex,Multiline,我需要一个正则表达式的帮助。 我有一个这样的文本,包含几行: 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 GU
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
我需要一个regexp,它将匹配整个消息,如果所有字符串
Account Name:
行后面是带“$”的文本
在本例中,有两行带有“帐户名:”
-其中一行包含“$”
,第二行不包含,因此不应匹配。如果有一行或多行帐户名为“”,但所有行都包含“$”,则匹配
我试过不同的方法,比如:
(?s)Account Name:\s+(?!(\$))\n.*
但是没有实现我的目标。您可以使用以下方法:
(?s)^(?!.*\bAccount Name:[^$\n]*(?:\n|$)).*
此模式使用负前瞻来确保没有不带$-字符的帐户名,然后只匹配整个文本。请尝试使用PCRE.OP,您能否验证标题是否准确描述了问题?在我的解释中,它描述了与内容不同的内容(如果包含某个字符串的所有行都包含$),它可能会沿着“(…)匹配”的行进行。谢谢!它起作用了。唯一的问题是,由于某种原因,此处的换行符[^$\n]被忽略,正则表达式将字符串的任何部分中的$与帐户名匹配。