helm - заменить специальные символы на подчеркивание

Впервые в k8s & helm.

Попытка объявить поле в развертывании с помощью {{ .Release.Name }}, который не должен содержать символы, кроме букв (верхние + нижние), цифр и _.

Исключенные символы следует заменить на _, например:feature/my-feature-1130

следует заменить на: feature_my_feature_1130

Не могли бы вы помочь мне создать такое поле?

Спасибо заранее!

2 ответа

Решение

Вы можете использовать regexReplaceAll нравится:

{{ regexReplaceAll "\\W+" .Release.Name "_" }}

См. Демонстрацию регулярных выражений.

\W+ соответствует 1 или нескольким вхождениям любого символа, не являющегося словом (символ, отличный от буквы, цифры и _) и заменяет их на _.

В \Для экранирования символа требуется другое экранирование, чтобы сформировать escape-последовательность регулярного выражения, поскольку он используется для формирования управляющих последовательностей строк.

Обратите внимание на порядок аргументов функции: сначала идет шаблон, затем входная строка, а затем шаблон замены.

Вы ищете это

 String s = "feature/my-feature-1130";
          s = s.replaceAll("\\W","_");
          System.out.println(s);

выход feature_my_feature_1130 извините, я не знаю, какой язык программирования вы используете, это регулярное выражение работает в java, но вы можете попробовать, работает ли оно для вас

Другие вопросы по тегам