<span style="font-size:18px;color:#cc0000;"><strong>1,可以在Pattern用多个括号(),这样就能对特定的group()操作</strong></span>
<span style="font-size:18px;color:#cc0000;"><strong>2,Pattern里{1,2}表示出现的次数,[1-2]表示匹配1到2</strong></span>
<span style="font-size:18px;color:#cc0000;"><strong>3,m.group(0)与m.group()等价;从m.group(1)开始</strong></span>
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class isIpv4 {
public static boolean par(String str){
int count=0;
Pattern p=Pattern.compile("(^\\d{1,3})(\\.)(\\d{1,3})(\\.)(\\d{1,3})(\\.)(\\d{1,3}$)");//我去!出现次数用大括号,可能出现元素用中括号,用^和$表示前面/后面再也没东西了
Matcher m=p.matcher(str);
while(m.find()){
for(int i=1;i<8;i+=2){
if(Integer.parseInt(m.group(i))<=255&&Integer.parseInt(m.group(i))>=0){
count++;
//System.out.println(m.group(i));
}
}
}
if(count==4)
return true;
else
return false;
}
public static void main(String[] args){
String str="256.12.2.251";
System.out.println(par(str));
}
}