求正则表达式
调用:
System.out.println(replace("aaa.bb[哈哈].ddd[bbbb].dddaad[cccc]eeeeeeee"));
函数:
public String replace(String s) {
List<String> list = new ArrayList<String>();
String pp = "\\[[^\\s]+\\]";
Pattern p = Pattern.compile(pp);
Matcher m = p.matcher(s);
int i = 0;
while(m.find()) {
s = m.replaceFirst("[" + i + "]");
i++;
m = p.matcher(s);
}
return s;
}
我想要的结果是:
输出aaa.bb[0].ddd[1].dddaad[2]eeeeeeee
并且想把"哈哈"、"bbbb"、"cccc"保存到list中,
但是结果不如人意
他一直对着:aaa.bb[0]循环,变死循环了
不明白String pp = "\\[[^\\s]+\\]";
这正则好象也没错吧?请教下大家.
好象这样写可以:
public String replace(String s) {
//这里不用正则字符
String pp = "ddd";
Pattern p = Pattern.compile(pp);
Matcher m = p.matcher(s);
int i = 0;
while(m.find()) {
s = m.replaceFirst("[" + i + "]");
m = p.matcher(s);
i++;
}
return s;
}
结果为aaa.bb[哈哈].[0][bbbb].[1]aad[cccc]eeeeeeee
不明白