请教高手一个问题!!!!!!!
用正则实现下面的效果:
判断一个字符串是否以"人数(5)" 开始(注:括号里的数字可以是不确定整数,数字是不能以0开头的整数),并且字符串只能包含一个这样的匹配。 如果匹配上了就把括号中的数字取出来。 请教如何实现
[解决办法]
/^人数\([1-9]\d*\)$/
[解决办法]
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);
}
[解决办法]
不会用正则。
给你一个纯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);
[解决办法]
<!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>
[解决办法]
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不符合规则!"); }