Velocity - 在大写字母上拆分字符串并插入下划线

Velocity - split string on Capital and insert underscore

我是 Velocity 的新手,正在使用它作为创建 Maven 原型的一部分。 我需要拆分从变量中获取的字符串,即 ${application-class-name},在大写字母上(从第二个开始),并插入下划线,例如 主页详细信息 => Home_Details 有没有一种简单的方法可以做到这一点? 提前致谢

请记住,速度引用是普通的 Java 对象,您可以在其上调用所有 public 方法。

此外,请注意,根据您使用的 Velocity 版本及其配置方式,您可能能够在引用名称中使用 -,但是你应该尽可能避免它。

你通常会这样做:

#set($originalApplicationClassName = 'HomeDetails')
#set($newApplicationClassName = $originalApplicationClassName.replaceAll("(?<!)([A-Z])", "_"))

其中 (?<!)([A-Z]) 是以 零宽度负后视 组开头的正则表达式(跳过第一个大写字母)。