我想在java中使用正则表达式在以下句子中找到重复模式:
username|s:5:"derick256";privilege|s:5:"derick542";premium|s:5:"derik542";
我需要提取以下内容,甚至可能更多,所以我需要一个易于扩展的解决方案......
- 用户名
derick256
- 特权
derick 542
- 优质的
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
. 谁能帮助我理解错误。