Борьба с Helm, чтобы сопоставить слово от его начала до последнего появления -
.
Я пробовал {{- printf "%s" .Release.Name | regexFind "[^-]*$" -}}
, но он печатает от последнего вхождения до конца слова.
Ожидал
ввод: hello-world-here
=> вывод: hello-world
ввод: hello-world-here-and-there
=> вывод: hello-world-here-and
Почему вы хотите, чтобы -here
было устранено в первом случае, но ничего не было устранено во втором? Извините, я не могу применить правило, которое вы хотите применить.
@Андреас, ты прав. это была опечатка. я обновил вопрос
@WiktorStribiżew это хороший намек. Спасибо
Кстати, это работает?
нет, это не работает. ничего не возвращает (пустая строка). В середине есть -
. верный ?
Может быть, вам нужно использовать regexReplaceAll "-[^-]*$" ""
? Регулярное выражение должно работать.
то же .. пустая строка ☹️ {{- printf "%s" .Release.Name | regexReplaceAll "-[^-]*$" "" -}}
.. название релиза ui-lool-local
BTW
Вам действительно нужно добавить -
в конце? Сомневаюсь, что это требуется. Попробуйте {{- printf "%s" .Release.Name | regexReplaceAll "-[^-]*$" "" }}
не работает. это моя версия руля: Клиент: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Хорошо, а что {{- regexFind ".*-" .Release.Name | trimSuffix "-" -}}
Большое спасибо @Виктор Стрибижев за его подсказки.
После долгих исследований я понял, что регулярное выражение правильное, но сигнатура функции потрясающая:
{{- regexReplaceAll "-[^-]*$" .Release.Name "" -}}
и нет :
{{- regexReplaceAll "-[^-]*$" "" .Release.Name -}}
Вот почему я поставил -
между шаблонами регулярного выражения и замены, я взял его за входную переменную в конвейерной нотации.
Чтобы было немного понятнее, порядок аргументов следующий: шаблон, входная строка, шаблон замены.
Может
regexReplaceAll "-[^-]*$" - ""
вместоregexFind
?