[英]How to make a valid Regular Expression for String.matches() for “image/*” in Java?
在 Spring 引导应用程序中,我正在制作一个 API,它接受类型为 application/pdf 或 image/* 的请求 Header 中的值。
@GetMapping(path = "/test, produces = { MediaType.APPLICATION_OCTET_STREAM_VALUE,
MediaType.APPLICATION_PDF_VALUE, MediaType.IMAGE_PNG_VALUE, MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<?> getSomething( @RequestHeader(name = "Accept") @NotEmpty List<String>
acceptTypes)
我想验证它是否包含任何 image/* 像 image/png 等。
boolean acceptHeaderValid = false;
for (String acceptType : acceptTypes) {
if (acceptType.matches("image/*") || acceptType.matches(MediaType.APPLICATION_PDF_VALUE)) {
acceptHeaderValid = true;
break;
}
}
但是,当我在 Insomnia 中的 Accept header 中发送 image/* 时,acceptType.matches("image/*") 的计算结果为 false。 正则表达式中的错误是什么? 有没有更有效的方法来做到这一点?
它可能不是很复杂,但一种简单的方法是直接使用String.startsWith
:
acceptType.startsWith("image/")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.