3

Javaで正規表現を使用して、次の文で繰り返しパターンを見つけたい:

username|s:5:"derick256";privilege|s:5:"derick542";premium|s:5:"derik542";

以下を抽出する必要があり、場合によってはそれ以上を抽出する必要があるため、簡単に拡張できるソリューションが必要です...

  1. ユーザー名derick256
  2. 特権derick 542
  3. プレミアムderik542

これは私のコードです...

String re1="((?:[a-z][a-z0-9_]*))"; // Variable Name 1
String re2=".*?";   // Non-greedy match on filler
String re3="(?:[a-z][a-z0-9_]*)";   // Uninteresting: var
String re4=".*?";   // Non-greedy match on filler
String re5="((?:[a-z][a-z0-9_]*))"; // Variable Name 2

Pattern p = Pattern.compile(re1+re2+re3+re4+re5,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(strLine);
if (m.find()){
    String word1=m.group(1);
    String word2=m.group(2);
    System.out.print("("+word1.toString()+")"+"("+word2.toString()+")"+"\n");
}

しかし、私はusername derick256. 誰でもエラーを理解するのを手伝ってくれませんか。

4

1 に答える 1

4

に変更if(m.find())while(m.find())ます。

于 2012-04-27T09:42:00.610 に答える