Как извлечь буквенные и числовые последовательности из строки в шаблоне скорости? - PullRequest
1 голос
/ 25 марта 2020

У меня есть строка типа 'LL101-D10'. Я хочу извлечь строку перед дефисом, начиная с первой цифры c ди git в скорости.

Например - "LL101-D10" , LLL101DL-D10
вывод - 101 , 101DL

Чтобы извлечь строку до Дефис я сделал, как показано ниже -

#set ($index = $String.indexOf('-'))
#set ($val1= $String.substring(0, $index))

Но как я могу извлечь другую часть в скорости? Любая помощь будет оценена.

1 Ответ

0 голосов
/ 25 марта 2020

Вы можете использовать операцию замены с использованием следующего регулярного выражения:

^[^0-9-]*([0-9][^-]*).*

и заменить его заполнителем $1, ссылаясь на содержимое, захваченное в группе 1.

См. regex demo

Подробности

  • ^ - начало строки
  • [^0-9-]* - 0+ символов кроме цифры и -
  • ([0-9][^-]*) - группа 1: ди git, а затем 0 или более символов, отличных от -
  • .* - остаток строки ( без разрывов строк, если есть разрывы строк, добавьте (?s) перед ^)

Используйте его как

#set ($val1= $String.replaceFirst("^[^0-9-]*([0-9][^-]*).*", "$1"))
...