Java 不需要正则表达式
我试图用Java开发一个简单的正则表达式,其模式如下:Java 不需要正则表达式,java,regex,Java,Regex,我试图用Java开发一个简单的正则表达式,其模式如下: @Pattern(regexp = "[a-zA-Z]{2}[0-9]{1}[2-8]{1}" , message = "The format is invalid") 但该字段为空时仍显示此消息, 因此,我只想在字段不为空时显示此消息(我希望字段为空将不需要) 多谢各位 尝试使用以下正则表达式,它与预期字符串和空字符串都匹配: [a-zA-Z]{2}[0-9]{1}[2-8]{1}|^$ Java代码: @Pattern(regexp
@Pattern(regexp = "[a-zA-Z]{2}[0-9]{1}[2-8]{1}" , message = "The format is invalid")
但该字段为空时仍显示此消息,
因此,我只想在字段不为空时显示此消息(我希望字段为空将不需要)
多谢各位 尝试使用以下正则表达式,它与预期字符串和空字符串都匹配:
[a-zA-Z]{2}[0-9]{1}[2-8]{1}|^$
Java代码:
@Pattern(regexp = "[a-zA-Z]{2}[0-9]{1}[2-8]{1}|^$", message = "The format is invalid")
您可以使用非捕获组
(?:…)?
来匹配空字符串或整个模式,从而使整个模式成为可选模式
注意,您可以省略{1}
部分
^(?:[a-zA-Z]{2}[0-9][2-8])?$
请发布有效的Java代码。你发布的内容不会编译。你是说它是空的还是说它是可选的<代码>^(?[a-zA-Z]{2}[0-9][2-8])?$Hi。您包含的代码段中存在语法错误。此外,您似乎正在使用某种神奇的框架。至少在某处提到它的名称(或者@Pattern注释的完整路径,以及包名)。这个问题遗漏了太多。(OT:
{1}
是多余的。)只是好奇,你想用[0-9]{1}[2-8]{1}
匹配什么?
@Pattern(regexp = "^(?:[a-zA-Z]{2}[0-9][2-8])?$" , message = "The format is invalid")