Java 正则表达式替换Spring@RequestMapping URL中的@PathVariable值
我在接口中定义了Spring MVC URL(只是为了保存常量),如下所示: 我有一个用于替换URL中变量的测试方法: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
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)) ...