[英]pattern match for for date with symbol and end symbol
我在请求中获得了一个带有特定格式日期的 ID,并且没有他们在我的 API 上尝试过的点击,如果它是当天的最后一次点击,那么以字符串的形式作为结尾。 我的变量是
@Pattern(regexp = "^\\d{8}_.*", message = "Field 'batchId' invalid.please provide in format yyyyMMdd_<digit/end>")
private String batch Id;
例如20200509_001
表示第一次尝试或20200509_9999999
表示 9999999 次点击,即格式 yyyyMMdd_no_of_tries 或20200509_end
即 yyyyMMdd_end 表示当天的最后一次点击(此结束可能不区分大小写。)但其中 1 个必须存在, 20200509_
或结束 202无效的。
我需要为此准备一个模式。到目前为止,我已经提出"^\\d{8}_.*"
它最多匹配 8 个数字,但我无法匹配 _ 之后的数字或字符串。
你可以使用这种模式:
^\d{8}_(\d+|end)$
这会强制在末尾有数字或结尾。
在您的代码中:
@Pattern(regexp = "^\\d{8}_(\\d+|end)$", message = "Field 'batchId' invalid.please provide in format yyyyMMdd_<digits/end>")
private String batch Id;
如果您希望结尾不区分大小写:
@Pattern(regexp = "^\\d{8}_(\\d+|[Ee][Nn][Dd])$", message = "Field 'batchId' invalid.please provide in format yyyyMMdd_<digits/end>")
private String batch Id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.