模式匹配java中的2个中间数字

时间:2017-10-06 08:27:34

标签: java

我希望第三种模式([0-9] {2})小于10或10.我也试过[1-9] | 0 [0-9] | 1 [0-0]模式而不是[0-9] {2}但无法得到解决方案。我希望得到以下格式的结果:012 550 10 0123456 01.

public static void main(String args[]){         
            System.out.println(Pattern.matches("[0-9]{3}[550]{3}[0-9]{2}[0-9]{6}[01]{2}", "8035501002499901")); 
}

1 个答案:

答案 0 :(得分:0)

从您的问题来看,您想要的模式似乎就是这样:

  • 任意3位数([0-9]{3}
  • 550 fixed(550) - 请注意[550]{3}表示3位数字的任意序列,例如5或0,例如005,050,555等
  • 2位数,应为0x或10((?:0[0-9]|10)
  • 任意6位数([0-9]{6}
  • 01 fixed(01) - [01]{2}表示任意2位数的序列,如0或1,例如00,01,10和11都匹配

因此你需要的正则表达式是:

[0-9]{3}550(?:0[0-9]|10)[0-9]{6}01