1. 程式人生 > >java正則表示式匹配所有相匹配的內容

java正則表示式匹配所有相匹配的內容


java使用正則表示式匹配所有內容
----

**
構建正則表示式
String patternCode="baseid=\\w+";
String patternTitle="title=\\\"[\\u4e00-\\u9fa5]*·?[\\u4e00-\\u9fa5]*\\(?[\\u4e00-\\u9fa5A-Za-z\\s]*\\)?[^\\x00-\\xff]?\\\"";
Pattern pCode=Pattern.compile(patternCode);
Pattern pTitle=Pattern.compile(patternTitle);
Matcher mCode=pCode.matcher(resultData);
Matcher mTitle=pTitle.matcher(resultData);
//構建陣列儲存資料
List<String> codeList=new ArrayList<>();
List<String> titleList=new ArrayList<>();

匹配內容,這裡我使用了兩種方式,一種能得到,一種不能得到,一直沒想明白,po上來。

不能匹配到內容的:

if(mCode.find){
for(int i=0;i<mCode.groupCount;i++){
codeList.add(mCode.group());
}
}

能匹配到所有內容的:

while (mCode.find()){
codeList.add(mCode.group());
}
while (mTitle.find()){
titleList.add(mTitle.group());
}

知道原因的,還請告訴我~