想写一个pattern检验name满足以下形式:"D12#H2#T0#C555#"或"D12#H2#T0#"或"D12#H2#"或"D12#",数字不固定。代码如下。问题是System.out.println("" + isServiceObject("D2#C2#"));     期望是false, 结果是 true。怎么写?    public static boolean isServiceObject(String name)    {        String patternStr = "D[0-9]+#(H[0-9]+#){0,1}(T[0-9]+#){0,1}(C[0-9]+#){0,1}";        Pattern pattern = Pattern.compile(patternStr);        Matcher matcher = pattern.matcher(name);        return matcher.matches();     }     public static void main(String args[])    {        System.out.println("" + isServiceObject("D12#H2#T0#C555#"));//true        System.out.println("" + isServiceObject("D12#H2#"));//true        System.out.println("" + isServiceObject("D2#H2#"));//true        System.out.println("" + isServiceObject("D22#"));//true        System.out.println("" + isServiceObject("D2#C2#"));//false        System.out.println("" + isServiceObject("D2#H#"));//false        System.out.println("" + isServiceObject("D2H2#"));//false    }