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, но вы можете попробовать, работает ли оно для вас