Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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 正则表达式替换Spring@RequestMapping URL中的@PathVariable值_Java_Regex_Spring_Spring Mvc - Fatal编程技术网

Java 正则表达式替换Spring@RequestMapping URL中的@PathVariable值

Java 正则表达式替换Spring@RequestMapping URL中的@PathVariable值,java,regex,spring,spring-mvc,Java,Regex,Spring,Spring Mvc,我在接口中定义了Spring MVC URL(只是为了保存常量),如下所示: 我有一个用于替换URL中变量的测试方法: private static final String REGEX_PARAMETROS_DA_URL = "(\\{[^\\}]*\\})"; protected String replaceParametersOnURL(String urlSpring, String... params) { String urlAtual = urlSpring

我在接口中定义了Spring MVC URL(只是为了保存常量),如下所示:

我有一个用于替换URL中变量的测试方法:

private static final String REGEX_PARAMETROS_DA_URL = "(\\{[^\\}]*\\})";
    protected String replaceParametersOnURL(String urlSpring, String... params) {
        String urlAtual = urlSpring;
        for (String parametro : params) {
            urlAtual = urlAtual.replaceFirst(REGEX_PARAMETROS_DA_URL, parametro);
        }
        return urlAtual;
    }
我使用这个正则表达式:
(\{[^\}]*\})
来匹配变量并替换它。 但是现在我有一些URL,上面有{},我找不到合适的正则表达式来用我的值替换变量

Spring上是否有任何方法可以替换PathVariable值,或者有人可以帮助我使用这个正则表达式

例如,给定此URL:

/pessoajuridica/{cnpj:[0-9]{14}}-{slug:[a-zA-Z0-9-]+}/sancoes/resumo

匹配项必须是:
{cnpj:[0-9]{14}
{slug:[a-zA-Z0-9-]+}
谢谢@Matthew。我没有注意到spring测试本身可以做到这一点

我需要做的就是:

mockMvc.perform(get("/pessoajuridica/{cnpj:[0-9]{14}}-{slug:[a-zA-Z0-9-]+}/sancoes/resumo", var1, var2)) ...

你看过SpringMVC测试文档@Thomas了吗?这解决了这个特殊的问题,但是如果我找到一个更复杂的正则表达式,比如{cnpj:[0-9]{14}[a-Z]},它将不起作用=/
mockMvc.perform(get("/pessoajuridica/{cnpj:[0-9]{14}}-{slug:[a-zA-Z0-9-]+}/sancoes/resumo", var1, var2)) ...