Java 正则表达式模式来检测两个连续的数字,后跟最多9个字符?

Java 正则表达式模式来检测两个连续的数字,后跟最多9个字符?,java,regex,Java,Regex,在java正则表达式中,如何创建一个正则表达式来检测任何以两个连续数字开头的字符串,后跟最多九个带连字符的连续字符?例如: nnccccccccc-nnccccccccc 或 或 其中,n表示从0到1的数字,c表示字母字符 到目前为止,我试过这样做:。我认为“nn”和没有一个字母字符是可以接受的,因此,对于单个序列: [0,1]{2}\D{0,9} 解释: [0,1]{2}-->只接受0和1作为正好两次的数字 \D{0,9}-->接受0到9的通用编号 编辑:你说 其中n表示从0到1的数字 但

在java正则表达式中,如何创建一个正则表达式来检测任何以两个连续数字开头的字符串,后跟最多九个带连字符的连续字符?例如:

nnccccccccc-nnccccccccc

其中,
n
表示从0到1的数字,
c
表示字母字符

到目前为止,我试过这样做:。

我认为“nn”和没有一个字母字符是可以接受的,因此,对于单个序列:

[0,1]{2}\D{0,9}
解释:

[0,1]{2}
-->只接受0和1作为正好两次的数字

\D{0,9}
-->接受0到9的通用编号

编辑:你说

其中n表示从0到1的数字

但如果接受了
22 may
,则需要0到9之间的数字,因此必须使用
\d

\d{2}\D{0,9}
您可以使用
^(\d{2}[a-zA-Z]{0,9})-(\d{2}[a-zA-Z]{0,9})$
示例:

这将匹配如下所述的字符串:

  • 你的弦的开始
  • 2
    小数
  • 0-9
    字符
  • -
  • 2
    再次小数
  • 0-9
    字符
  • 你的底线

  • 您可以使用此正则表达式进行匹配:

    ^\d{1,2}[a-zA-Z]{1,9}-\d{1,2}[a-zA-Z]{1,9}$
    

    如果您使用的是
    .matches()
    方法,则不需要
    ^
    $

    • \d{1,2}
      :匹配1或2位数字
    • [a-zA-Z]{1,9}
      :匹配1到9个英文字母
    • -
      :匹配文字连字符
    试试这个
    [0-1]{2}+[a-z]{9}+-

    您提到其中
    n
    表示从0到1的数字,但是您想要匹配的似乎表示从0到9的数字。哪一个是正确的?正则表达式是必须的吗?如果不是,我宁愿尝试解析日期。。。如果有2月30日的假期,你会怎么办?还是60年?再看一遍你的问题。。。被接受的答案怎么可能是你问题的答案?;-)2个连续数字,后跟最多9个带连字符的字符。。。连续数字必须为0或1。。。。并不是说我批评了答案。。。我宁愿批评这个问题……这也将符合
    01april-01april-
    。检查是否正确。
    \d{2}\D{0,9}
    
    ^\d{1,2}[a-zA-Z]{1,9}-\d{1,2}[a-zA-Z]{1,9}$