繁体   English   中英

带有符号和结束符号的日期的模式匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM