Мне нужно использовать регулярное выражение ("filter = regexp" в NSClient ++), чтобы получить определенную строку (помеченную «< -»), если есть NO $ -sign внутри. Ниже приведен пример того, как выглядит текст, в котором я должен искать (это описание представляет собой журнал событий).Нужна помощь при создании регулярного выражения (NSClient ++)
A member was added to a security-enabled global group
Subject:
Security ID: ...
Account Name: ...
Account Domain: ...
Logon ID: ...
Member:
Security ID: ... <--
Account Name: ...
Group:
Security ID: ...
Group Name: ...
Group Domain: ...
Additional Information:
...
Таким образом, если линия, которая начинается с «Security ID» внутри «член» не содержит знак $ то мне нужно вывод регулярных выражений, чтобы быть «Security ID: ...» иначе выход не должен быть.
Я попробовал несколько разные вещи, но я не получаю я работаю совершенно прав:
/(?<=Member:[\n]).*(Security ID:((?![$]).)*)(?=[\n].*Account Name:)/s
-> Неправильно, если есть линия между «ID безопасности ...» и «Имя учетной записи. .. "и швов, чтобы вернуть два матча.
Так что, может быть, кто-то может мне помочь. ;)
ОБНОВЛЕНИЕ: Как это сделать, если между «Участником» и «Идентификатором безопасности» может быть несколько линий?
UPDATE2: На самом деле это то, что я имел в виду:
/(?m)^(?<=Member:[\n])(?:.|\n)*?(Security ID:[^$\n]*$)(?:.|\n)*?(?=Group:[\n])/
Спасибо за вашу помощь Робин & AdamK иначе я все еще ищет, чтобы получить это право! :)
Привет, Седрик
Если есть строка между Sec ID и Acc number, тогда я ничего не получаю для соответствия. – AdamK
Я только пробовал его здесь: http://regex101.com/#python и здесь: http://regex101.com/#pcre – Dobi
@Dobi: Fyi on regex101 вы добросовестно делитесь своим конкретным примером, нажимая Ctrl + S или нажав «Сохранить regex» слева – Robin