2012-04-27 33 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())