Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何找到与参数匹配的字符串模板变量并替换为自动生成的值_Java_Regex_Lookup - Fatal编程技术网

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

Java:如何找到与参数匹配的字符串模板变量并替换为自动生成的值,java,regex,lookup,Java,Regex,Lookup,在我的java应用程序中,用户可以使用预定义的变量集,如RANDOM\u字母数字(charLength)或RANDOM\u字母数字(minLength,maxLength) 假设用户使用变量定义了下面的 something<$$RANDOM_ALPHANUMERIC(8)$$> something <$$RANDOM_ALPHANUMERIC(5,8)$$> something 什么 我需要我的Java程序解析上面的字符串,找到RANDOM\u字母数字(charLen

在我的java应用程序中,用户可以使用预定义的变量集,如
RANDOM\u字母数字(charLength)
RANDOM\u字母数字(minLength,maxLength)

假设用户使用变量定义了下面的

something<$$RANDOM_ALPHANUMERIC(8)$$> something <$$RANDOM_ALPHANUMERIC(5,8)$$> something
什么
我需要我的Java程序解析上面的字符串,找到
RANDOM\u字母数字(charLength)
RANDOM\u字母数字(minLength,maxLength)
模式,并用适当的值替换它们

我试图从commons lang中找到替代者,但没有找到多少帮助


请建议如何实现这一点。

正则表达式将是:
随机字母数字\((\d+),(\d+)

问题是,由于函数的名称相同,您需要知道是否有第二个参数。
解决办法是:

  • 两个不同的方法名
  • 对字符串进行两次分析,或对字符串进行
    随机字母数字(
    )分析,然后检查是否有一个或两个参数
  • 为正则表达式组命名

你所说的“变量”集是什么意思?我不明白你的问题。很可能,一些代码会非常有助于更好地理解你的问题。你是说用户可以编写“脚本”吗你的java程序应该解释这些脚本吗?是的,正确的。用户可以发布脚本和我的程序来解释和解析所使用的变量。考虑随机数字母数字是变量和字符长度,min,max作为它们的参数。我需要解决这些占位符,并用正确的方法替换,然后你就可以了。您可能会退一步,学习如何编写合理的解析器。本主题的内容远不止识别预定义名称并将其映射到功能。更准确地说,您的程序是解释用户输入(意思是:执行),还是只是进行某种“翻译”将字符串替换为与一行中多个逗号匹配的其他字符串。