Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于Zip、电话、电子邮件和日期的Java正则表达式_Java_Regex - Fatal编程技术网

用于Zip、电话、电子邮件和日期的Java正则表达式

用于Zip、电话、电子邮件和日期的Java正则表达式,java,regex,Java,Regex,我有四个Java正则表达式,它们与a匹配: Zip code : ([0-9]*)([0-9\\-])([0-9]+) telephone: ([0-9]+)([\\-]?)([0-9]+)([\\-]?)([0-9]+) email : ([a-z0-9_\\.-]+)@([\\da-z\\.-]+)([\\da-z]+)\\.([a-z]+) date : ((19|20)\\d\\d)[/-](0?[1-9]|1[012])[/-](0?[1-9]|[12][0-9]|3[0

我有四个Java正则表达式,它们与a匹配:

Zip code : ([0-9]*)([0-9\\-])([0-9]+)
telephone: ([0-9]+)([\\-]?)([0-9]+)([\\-]?)([0-9]+)
email    : ([a-z0-9_\\.-]+)@([\\da-z\\.-]+)([\\da-z]+)\\.([a-z]+)
date     : ((19|20)\\d\\d)[/-](0?[1-9]|1[012])[/-](0?[1-9]|[12][0-9]|3[01])
and ((19|20)\\d\\d)(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])
他们正如我所预料的那样工作。但如果我为整个应用“最大长度”和“最小长度”,它们将不再匹配

例如:

zip  : ([0-9]*)([0-9\\-])([0-9]+).{2,10}
email:  ([0-9]+)([\\-]?)([0-9]+)([\\-]?)([0-9]+).{64}

我想为所有这些正则表达式添加最小和最大长度

^(?=.{2,10}$)([0-9]*)([0-9\\-])([0-9]+)

表达式
^(?=.{2,10}$)
表示“无论后面跟着什么其他正则表达式,整个输入都必须是2-10个字符长”

如果不重写几乎所有内容,那么将最大长度应用于这些正则表达式将有点困难。您的最佳选择可能是使用积极的前瞻:

zip : ^(?=.{2,10}$)([0-9]*)([0-9\\-])([0-9]+)
      ^^^^^^^^^^^^^
这将确保拉链在2到10个字符之间

email :  ^(?=.{64}$)([0-9]+)([\\-]?)([0-9]+)([\\-]?)([0-9]+)
         ^^^^^^^^^^^

这将确保电子邮件长度为64个字符。更改为
^(?=.{1,64}$)
1到64个字符。

您指的是Javascript还是Java?现在在Java中,我将在javascript@shahinbdregexes怎么样?谢谢Jerry。他们工作得很好。