С помощью оператора name%pattern
с задней привязкой на сервере сборки и заданной входной строкой, такой как:
remainstr1-remaingstr2--9.99.9-remainstr3-20190920.115934-4.zip
Мне нужна часть 20190920.115934-4.zip
длябыть удаленным.
Мне удалось успешно применить это преобразование с использованием подстановочных знаков символов и литералов. Но я не смог заставить его работать, указав несколько вхождений данного диапазона, используя квантификатор +
. (конечно, цифры в части удаления могут быть любыми цифрами) .
До сих пор работает следующий шаблон (конечно, замена .*
детали на \.zip
такжеработает) :
REMAIN_STRING=${START_STRING%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].[0-9][0-9][0-9][0-9][0-9][0-9]-[0-9].*}
Но это выглядит совершенно не элегантно, и я хотел бы указать несколько вхождений класса символов цифр ([0-9]
), но я мог бы заставить его работать.
Я, очевидно, пытался
REMAIN_STRING=${START_STRING%[0-9]+.[0-9]+-[0-9].*}
, а также многочисленные возможности с или без скобок, обратная косая черта экранируется, но REMAIN_STRING просто остается такой же, как START_STRING.
Я также пытался сохранитьшаблон в качестве переменной, как в некоторых примерах, предлагает:
X="[([0-9]+)-([0-9]+).zip]"
, а затем: REMAIN_STRING=${START_STRING%$X}
Но все терпят неудачу!
Теперь это расстраивает меня, даже больше, потому что я получаюнет сообщений об ошибках. Просто ничего не происходит.
Итак, я спрашиваю себя: могут ли операторы name%pattern
и аналогичные обрабатывать сложные / расширенные регулярные выражения или я где-то пропускаю простой escape?