Regex, чтобы удалить все после -i- (с -i-)
Я пытался найти решение для моей проблемы.
Input: prd-abcd-efgh-i-0dflnk55f5d45df
Output: prd-abcd-efgh
Tried Splunk Query : index=aws-* (host=prd-abcd-efgh*) | rex field=host "^(?<host>[^.]+)"| dedup host | stats count by host,methodPath
Я хочу удалить все, что идет после "-i-" с помощью простого регулярного выражения. Я попытался с регулярным выражением "^(?[^.]+)", Перечисленным здесь
Пожалуйста, помогите мне решить это.
3 ответа
Решение
replace(host, "(?<=-i-).*", "")
Пример здесь: https://regex101.com/r/blcCcQ/2
это (?<=-i-)
это взгляд сзади
Что-то простое, как это должно работать:
([a-z-]+)-i-.+
Первая группа захвата вернет только часть, предшествующую -i-
,
Я не знаю Splunk. но нормальный способ сделать это - сопоставить ненужную часть и заменить ее пустой строкой.
Регулярное выражение для этого может быть:
-i-.*
Затем замените совпадение пустой строкой.