因不懂java,请帮忙写个正则
字符串:
space:NationalID,LocalID,DrivingLicense,MilitaryID,Passport,HomePassId,OtherCard;type:1;name:身份证;number:110101197706158352
规则: space:($1);type:($2);name:($3);number:($4)
可以是全部或者是部分:
space:;type:;name:;number: //符合
type:1;name:2;number:3 //符合
name:2;number:3 //符合
number:3 //符合
space:;number:3 //符合
最好同时能正侧取出 $1 $2 $3 $4对应的值(不用理他们是什么字符) 它们可能是空。
谢谢,不知道我说得清楚不?
------解决方案--------------------------------------------------------
- Java code
String text = "space:NationalID,LocalID,DrivingLicense,MilitaryID,Passport,HomePassId,OtherCard;type:1;name:身份证;number:110101197706158352"; String regex = "space:([^;]*);type:([^;]*);name:([^;]*);number:(\\w*)"; Matcher m = Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(text); if(m.find()){ for (int i = 0; i < m.groupCount(); i++) { System.out.println(m.group(i+1)); } }