下面是這種情況,我有這樣的正則表達式:正則表達式在java中不斷丟失數據
\"category\",([0-9]+)\n(\"subcategory\",[0-9]+\n)*
這種模式應符合以下數據:
"category",1
"subcategory",1
"subcategory",2
"subcategory",3
"category",2
"subcategory",1
"subcategory",2
"subcategory",3
,我用下面正則表達式功能:
public static List<String> regexFindMultiStrings(String pattern, String input) {
Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(input);
List<String> data = new ArrayList<String>() ;
while (m.find())
{
for (int i = 0; i <= m.groupCount(); i++)
{
data.add(m.group(i));
//Log.e("Array", m.group(i));
}
}
return data;
}
這裏的問題是,現在,當我用這個模式來匹配所有的數據也只給出如下荷蘭國際集團:
1
"subcategory",1
2
"subcategory",1
這是一件好事,我不是在尋找如何讓所有的數據是這樣的:
1
"subcategory",1
"subcategory",2
"subcategory",3
2
"subcategory",1
"subcategory",2
"subcategory",3
同樣的事情,問題是如果我使用regexpal或任何其他正則表達式工具我得到的所有字符串匹配,但與Java我只是讓主類別和第一個子類別。它的一個奇怪的行爲:\ – SolidSnake
請參閱http://stackoverflow.com/questions/5018487/regular-expression-with-variable-number-of-groups – Mat