Для начала - я сделал несколько регулярных выражений (ни в коем случае не эксперт), но это ставит меня в тупик.
регулярное выражение: pcre (php)
Я пытаюсь получить значения из некоторых полей, содержащихся в событиях в Splunk.В частности, события из папки входящих сообщений от exchange.
Уловка заключается в том, что значения заключены в кавычки ("). Таким образом, поле" От "со значением NO выглядит примерно так:
From="". One with an actual value would look like From=""Smith, John" [SMTP:johnsmith@example.com] or From="Microsoft At Home" or From=""Systems"[[EX:/O=<organization>/OU=******/cn=Recipients/cn=******]".
Следующее поле в событии - ExceptFrom= "".
У меня есть шаблон регулярных выражений:
`(?:\bFrom=(?:")(?:"|(?:))(?P<From_fixed>((.+?))|((.+?)))(?:"))`
такого рода работы, но он имеет много проблем, которые я должен отфильтровать позже в процессе. Кроме того, когдаданные выглядят как From = "", они захватывают следующее поле ExceptFrom = "".
Можете ли вы помочь мне найти регулярное выражение, которое получает значение между внутренним набором кавычек, если есть двойные кавычки,значение между кавычками, если есть одинарные кавычки, и не возвращать значение, если есть просто набор двойных кавычек ("").
Последняя из них полезна, так как я могу просто проигнорировать это позже,но при этом данные будут выглядеть лучше.
Они должны быть записаны в именованной группе From_fixed. Вот примеры данных, с которыми я работаю:
- From = "" ExceptIfFrom ="" HasAttachment = "False" - Желаемый результат = или ""
- From = "Предстоящие события" ExceptIfFrom = "" - Желаемый результат = Предстоящие события
- From = "" Смит, Джон "[SMTP: johnsmith@example.com] - Желаемые результаты = Смит, Джон
- From = "" Системы "[[EX: / O = / OU = ****** / cn = Получатели / cn = ******]" - Желаемые результаты = Системы
Заранее спасибо!