2012-04-27 65 views
3

reqular表情,我想找到在Java中使用reqular表達式重複模式在下面的句子重複的句型:查找在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。任何人都可以幫助我理解錯誤。

+1

在「derik542」中是否缺少「c」字符? – 2012-04-27 09:43:03

+0

是的..我的意思是它可以是任何其他的詞 – 2012-04-27 09:56:34

回答

4

更改if(m.find())while(m.find())