Блокнот ++ регулярное выражение не работает
Я пытаюсь использовать Notepad++ и регулярные выражения для удаления всего XML из событий Windows.
Мое регулярное выражение выглядит следующим образом:
Event Xml:(.|\n)+?Event>\n
Ниже приведены примеры событий Windows:
Log Name: System
Source: Service Control Manager
Date: 2016/04/29 11:54:00
Event ID: 7036
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: hostname.domainname
Description:
The Adobe Flash Player Update Service service entered the stopped state.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
<EventID Qualifiers="16384">7036</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2016-04-29T10:54:00.113587400Z" />
<EventRecordID>299771</EventRecordID>
<Correlation />
<Execution ProcessID="696" ThreadID="3904" />
<Channel>System</Channel>
<Computer>hostname.domainname</Computer>
<Security />
</System>
<EventData>
<Data Name="param1">Adobe Flash Player Update Service</Data>
<Data Name="param2">stopped</Data>
<Binary>410064006F006200650046006C0061007300680050006C0061007900650072005500700064006100740065005300760063002F0031000000</Binary>
</EventData>
</Event>
Log Name: System
Source: Service Control Manager
Date: 2016/04/29 11:54:00
Event ID: 7036
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: hostname.domainname
Description:
The Adobe Flash Player Update Service service entered the running state.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
<EventID Qualifiers="16384">7036</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2016-04-29T10:54:00.113587400Z" />
<EventRecordID>299770</EventRecordID>
<Correlation />
<Execution ProcessID="696" ThreadID="3904" />
<Channel>System</Channel>
<Computer>hostname.domainname</Computer>
<Security />
</System>
<EventData>
<Data Name="param1">Adobe Flash Player Update Service</Data>
<Data Name="param2">running</Data>
<Binary>410064006F006200650046006C0061007300680050006C0061007900650072005500700064006100740065005300760063002F0034000000</Binary>
</EventData>
</Event>
Вышеупомянутое регулярное выражение работает в http://www.regexpal.com/:
Вышеупомянутое регулярное выражение не работает в Notepad++:
3 ответа
Регулярное выражение \r\nEvent Xml:(.|\r\n)+?Event>
работал точно так же, как и при удалении всех экземпляров, независимо от конечной новой строки в конце файла и без включения опции ". соответствует новой строке".
До:
Спасибо @DavidPostill и @Sylordis, которые помогли мне разобраться в этом!
Что такое регулярные выражения для удаления всего XML?
Меню "Поиск" > "Заменить" (или Ctrl + H)
Установите "Найти что"
Event Xml:(.*?)Event>
Установите "Заменить" на пустую строку
Включить "Регулярное выражение"
Включить ". Соответствует новой строке"
Нажмите "Заменить все"
До:
Log Name: System
Source: Service Control Manager
Date: 2016/04/29 11:54:00
Event ID: 7036
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: hostname.domainname
Description:
The Adobe Flash Player Update Service service entered the stopped state.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
<EventID Qualifiers="16384">7036</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2016-04-29T10:54:00.113587400Z" />
<EventRecordID>299771</EventRecordID>
<Correlation />
<Execution ProcessID="696" ThreadID="3904" />
<Channel>System</Channel>
<Computer>hostname.domainname</Computer>
<Security />
</System>
<EventData>
<Data Name="param1">Adobe Flash Player Update Service</Data>
<Data Name="param2">stopped</Data>
<Binary>410064006F006200650046006C0061007300680050006C0061007900650072005500700064006100740065005300760063002F0031000000</Binary>
</EventData>
</Event>
Log Name: System
Source: Service Control Manager
Date: 2016/04/29 11:54:00
Event ID: 7036
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: hostname.domainname
Description:
The Adobe Flash Player Update Service service entered the running state.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
<EventID Qualifiers="16384">7036</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2016-04-29T10:54:00.113587400Z" />
<EventRecordID>299770</EventRecordID>
<Correlation />
<Execution ProcessID="696" ThreadID="3904" />
<Channel>System</Channel>
<Computer>hostname.domainname</Computer>
<Security />
</System>
<EventData>
<Data Name="param1">Adobe Flash Player Update Service</Data>
<Data Name="param2">running</Data>
<Binary>410064006F006200650046006C0061007300680050006C0061007900650072005500700064006100740065005300760063002F0034000000</Binary>
</EventData>
</Event>
После:
Log Name: System
Source: Service Control Manager
Date: 2016/04/29 11:54:00
Event ID: 7036
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: hostname.domainname
Description:
The Adobe Flash Player Update Service service entered the stopped state.
Log Name: System
Source: Service Control Manager
Date: 2016/04/29 11:54:00
Event ID: 7036
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: hostname.domainname
Description:
The Adobe Flash Player Update Service service entered the running state.
дальнейшее чтение
Вы должны проверить опцию ". Соответствует новой строке" в notepad++, в противном случае регулярное выражение следует рассматривать только построчно.