Regex, чтобы удалить все после -i- (с -i-) - PullRequest
0 голосов
/ 02 ноября 2018

Я пытался найти решение для моей проблемы.

 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-", используя простое регулярное выражение. Я пробовал с регулярным выражением "^ (? [^.] +)", Перечисленным здесь

https://answers.splunk.com/answers/77101/extracting-selected-hosts-with-regex-regex-hosts-with-exceptions.html

Пожалуйста, помогите мне решить.

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Что-то простое, как это должно работать:

([a-z-]+)-i-.+

Первая группа захвата вернет только часть, предшествующую -i-.

0 голосов
/ 02 ноября 2018

replace(host, "(?<=-i-).*", "")

Пример здесь: https://regex101.com/r/blcCcQ/2

Это (?<=-i-) взгляд назад

0 голосов
/ 02 ноября 2018

У меня нет знаний о Splunk. но обычный способ сделать это - сопоставить ненужную часть и заменить ее пустой строкой.

Регулярное выражение для этого может быть:

-i-.*

Затем замените совпадение пустой строкой.

...