Java:如何使用参数查找匹配的字符串模板变量并替换为自动生成的值

Java: How to find matching String Template variables with parameters and replace by auto generated values

在我的 java 应用程序中,用户可以使用我的预定义变量集,例如 RANDOM_ALPHANUMERIC(charLength)RANDOM_ALPHANUMERIC(minLength, maxLength)

假设用户使用变量定义了以下内容

something<$$RANDOM_ALPHANUMERIC(8)$$> something <$$RANDOM_ALPHANUMERIC(5,8)$$> something

我需要我的 Java 程序来解析上面的字符串并找到 RANDOM_ALPHANUMERIC(charLength)RANDOM_ALPHANUMERIC(minLength, maxLength) 模式并将它们替换为适当的值。

我试图从 commons lang 中找到 StrSubstitutor,但找不到太多帮助。

请指教如何实现。

正则表达式为:RANDOM_ALPHANUMERIC\((\d+),?(\d+)?\)
http://regexr.com/3aqbm

问题是,因为函数的名称是相同的,所以你需要知道是否有第二个参数。
解决方案是:

  • 两个不同的方法名称
  • 解析字符串两次或解析字符串RANDOM_ALPHANUMERIC(然后检查是否有一个或两个参数
  • 为正则表达式组命名