pattern为:"U([A-Z]([a-z])*)+" 或 "U([A-Z]{1}([a-z])*)+" 或 "U{1}([A-Z]{1}([a-z])*)+" 时"UnitTransaction"都能匹配成功只有pattern为"U^[a-z]([A-Z]([a-z])*)+"时才能匹配不成功这是为什么呢?"UnitTransaction"在"U([A-Z]([a-z])*)+"中nit被哪一部分匹配了呢?
正则部分代码:
其中
patten="(U)(([A-Z])([a-z])*)+"
content="UnitTransaction"        Pattern pattern = Pattern.compile(patten, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(content);
        int matchNum=0;
        while (matcher.find())
        {
         matchNum++;
         System.out.println("=========");
         for(int i=0;i<matcher.groupCount();i++)
         System.out.println(matcher.group(i));
         System.out.println("=========");
        }输出:
=========
UnitTransaction
U
nitTransaction
n
=========