用正则实现下面的效果:
 判断一个字符串是否以"人数(5)" 开始(注:括号里的数字可以是不确定整数,数字是不能以0开头的整数),并且字符串只能包含一个这样的匹配。 如果匹配上了就把括号中的数字取出来。 请教如何实现

解决方案 »

  1.   

    String str = "werwr人数(052)eewrw人数(5)erwe";
    Pattern pattern = Pattern.compile("(人数\\([1-9]\\d*\\)){1}");
    Matcher matcher = pattern.matcher(str);
    if (matcher.find()) {
    str = matcher.group();
    System.out.println(str);
    }
      

  2.   

    不会用正则。
    给你一个纯java的。String s = "人数(5)";
    int mynum;
    if("人数(".equals(s.substring(0, 3))){
        String num[] = s.split("(")[1].split(")");
        if(num.length>1&&!"0".equals(num[0].substring(0,1))){
            try{
                mynum = Integer.valueOf(num[0]);
            }catch(Exception e){
            }
        }
    }
    System.out.println(mynum);
      

  3.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <script type="text/javascript">    function check()
        {
            var a = document.getElementById('num').value;
            var v =/^人数\([1-9]\d*\)$/;
     var b = /\D/;
            if(v.test(a)){
    alert('Yes');
    a=a.substring(3,a.indexOf(")"));
    alert(a);}
    else{alert('No');}
        }
    </script> 
    <body>
    <form id="form1" name="form1" method="post" action="">
      <label>
      <input type="text" name="num" id="num" />
      </label>
      <label>
      <input type="button" name="Submit" onclick="check()" value="提交" />
      </label>
    </form>
    </body>
    </html>
      

  4.   


    String str1 ="人数(053)xxx(1234)";
    String str2 = "人数(53)xxx(1234)";
    String reg  = "^人数\\([1-9]+\\d*\\).*$";
    if(str1.matches(reg)){
    System.out.println("字符串str1==>人数为:"+str1.substring(str1.indexOf("(")+1,str1.indexOf(")")));
    }else{
    System.out.println("字符串str1不符合规则!");
    }
    if(str2.matches(reg)){
    System.out.println("字符串str2==>人数为:"+str2.substring(str2.indexOf("(")+1,str2.indexOf(")")));
    }else{
    System.out.println("字符串str2不符合规则!");
    }