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(
然后检查是否有一个或两个参数
- 为正则表达式组命名
在我的 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(
然后检查是否有一个或两个参数 - 为正则表达式组命名