我有一个类似'LL101-D10'
的字符串。我想从Velocity中的第一个数字开始在连字符前提取String。
例如-"LL101-D10" , LLL101DL-D10
输出-101 , 101DL
要在连字符之前提取字符串,如下所示-
#set ($index = $String.indexOf('-'))
#set ($val1= $String.substring(0, $index))
但是我如何提取Velocity中的其他部分?任何帮助,将不胜感激。
您可以使用以下正则表达式使用替换操作:
^[^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"))