如何从力度模板中的字符串中提取字母和数字序列?

问题描述 投票:1回答:1

我有一个类似'LL101-D10'的字符串。我想从Velocity中的第一个数字开始在连字符前提取String。

例如-"LL101-D10" , LLL101DL-D10输出-101 , 101DL

要在连字符之前提取字符串,如下所示-

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

但是我如何提取Velocity中的其他部分?任何帮助,将不胜感激。

regex templates velocity
1个回答
0
投票

您可以使用以下正则表达式使用替换操作:

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

并参考组1中捕获的内容替换为$1占位符。

请参见regex demo

详细信息

  • ^-字符串开头
  • [[^0-9-]*-0+个字符,除了数字和-] >>
  • [([0-9][^-]*)-组1:一个数字,然后是0个或多个-以外的字符
  • [.*-字符串的其余部分(没有换行符,如果有换行符,请在(?s)之前添加^)]
  • 使用方式

#set ($val1= $String.replaceFirst("^[^0-9-]*([0-9][^-]*).*", "$1"))
© www.soinside.com 2019 - 2024. All rights reserved.