怎么用正则表达式表示一段特定格式的字符串:M字母开头+三位任意数字,但不包括000?
------解决方案--------------------------------------------------------
^[M] 表示以M开头
[1-9]\\d{2}---------1-9,后面匹配2个数字
\\d[1-9]\\d---------中间为1-9,两头各有一个数字
\\d{2}[1-9]---------前面两数字,最后一位1-9,
他们都是或者对关系,其实就是排除000的情况
正则不是太精通,所以只能写成这样了
------解决方案--------------------------------------------------------
任意三位数字是必须满三位数字吗?一位或两位数字的可以还是不可以?
- Java code
//必须满三位的String[] a = {"M0", "M1", "M00", "M12", "M000", "M123", "M0000", "M1234"};for (String s : a) { System.out.println(s.matches("^M(?!000)\\d{3}"));}//不是必须满三位,也就是一位或两位也可以的String[] a = {"M0", "M1", "M00", "M12", "M000", "M123", "M0000", "M1234"};for (String s : a) { System.out.println(s.matches("^M(?!(000|00|0))\\d{1,3}"));}