我用java写了一个正则表达式。正则的规则是: 只能是数字或者字母,但不能全部为数字 
public class TestRegx {    
    public void test(String str){
        boolean boo = str.matches("((\\d)*)([a-zA-Z]+)((\\d)*)([a-zA-Z]*)");
        System.out.println(boo);
        }
    public static void main(String[] args) {
        
      TestRegx t = new TestRegx();
      t.test("3131231");
      t.test("adfdsf");
      t.test("aaa345546aghhth");
      t.test("121fafda");
      t.test("faafa");
      t.test("ddd1231");
      t.test("12312afaf12312");
      
    }
}这个正则已经满足了我的需求,将这个正则放到struts2的validation.xml里 
<field-validator type="regex">
      <param name="expression"><![CDATA[((\\d)*)([a-zA-Z]+)((\\d)*)([a-zA-Z]*)]]></param>
      <message key="errors.namenum"/>
 </field-validator>问题出现了,输入只能全部为字母,只要出现一个数字就不能通过. 
请问这是什么原因,JS的正则和java的正则有区别,难道java和xml在解析正则表达式的时候也有区别? 
我应该在validation.xml里怎么写这个正则表达式呢?