【发布时间】:2012-03-16 15:20:19
【问题描述】:
对于我的单元测试,我想找到一个无法匹配 Spring MVC 3.1.1 中的 UriComponentsBuilder#URI_PATTERN 正则表达式的无效 URI 示例:
private static final String SCHEME_PATTERN = "([^:/?#]+):";
private static final String HTTP_PATTERN = "(http|https):";
private static final String USERINFO_PATTERN = "([^@/]*)";
private static final String HOST_PATTERN = "([^/?#:]*)";
private static final String PORT_PATTERN = "(\\d*)";
private static final String PATH_PATTERN = "([^?#]*)";
private static final String QUERY_PATTERN = "([^#]*)";
private static final String LAST_PATTERN = "(.*)";
// Regex patterns that matches URIs. See RFC 3986, appendix B
private static final Pattern URI_PATTERN = Pattern.compile(
"^(" + SCHEME_PATTERN + ")?" + "(//(" + USERINFO_PATTERN + "@)?" + HOST_PATTERN + "(:" + PORT_PATTERN +
")?" + ")?" + PATH_PATTERN + "(\\?" + QUERY_PATTERN + ")?" + "(#" + LAST_PATTERN + ")?");
我正在努力寻找一个会导致UriComponentsBuilder.fromUriString() 以IllegalArgumentException 失败的字符串。我尝试的任何东西都通过正则表达式检查作为有效的 URI。
【问题讨论】:
标签: java spring-mvc rfc3986