2016-05-10 2 views
2

Мне нужна помощь с регулярным выражением. У меня есть текст, как это, который содержит несколько строк:

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.* 

но не удалось достичь своей цели.

+0

Попробуйте ['/\A(?!.*^\h*Account Имя: [^ $ \ n \ r] * $). * \ Z/sm'] (https://regex101.com/r/uE2kO0/1) для PCRE. –

+0

OP, можете ли вы проверить, что заголовок точно описывает проблему? В моей интерпретации он описывает нечто иное, чем содержание (оно должно, по-видимому, идти по строкам «(...), только если все строки, содержащие определенную строку, содержат $»). – werkritter

ответ

2

Вы можете использовать это:

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

Эту модель использует отрицательный предпросмотр, чтобы убедиться, что нет Имени счетов без какого-либо $ -character, то просто соответствует всему тексту.

+0

Спасибо! Работает. Единственный isssue - символ новой строки здесь [^ $ \ n] по какой-либо причине игнорируется, regex соответствует $ в любой части строки с именем учетной записи. –

Смежные вопросы