如题,我们平时会用split去分割一个字符串,可是分割完以后只留下了不含正则表达式内容的其他内容,而我想只是把含有正则表达式的字符串单独分开而已,比如:aaaaa{bbbb}ccccc{ddddd}eeeee,用split对{}进行分离后就变成了aaaaa,ccccc,eeeee。而我想要的是aaaaa,{bbbb},ccccc,{ddddd},eeeee。请问高手们这样用什么方法呢?
解决方案 »
- 事务添加失败
- JAVA为什么在日常的应用中,被使用的很少???都在一些大项目中使用?
- 一个jar包放在WEB-INF/lib下,或refernced Libraries有什么区别
- 关于向服务器发送消息的程序中出现问题
- struts.xml的配置问题。。
- spring4整合hibernate4报错
- 如何实现将JSP文件中的变量值传递给自定义TAG中的属性值?
- 数据库 里的 \u9648\u952e\u56fd , 在 从Javabean中取出在JSP页面上显示 还是 \u9648 \u952e\u56fd ?
- 在weblogic7.0+sqlServer2000下面运行jsp巨慢,请问大概什么原因?
- 在Jsp服务器里,URL请求 http://xxx.xxx.xxx.xxx/中文资料.txt (是汉字文件名)能通过吗?
- 怎样退出logic:iterate标签
- struts2 链接如何使用?
String str = "aaaaa{bbbb}ccccc{ddddd}eeeee";
String[] strs = str.split("(?=\\{)|(?<=\\})");
for(int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
}
}
--------------完美的签名线-----------------
网页游戏开发第一站 http://dev.web863.com
就是这样的正则表达式:"\\<\\!-- BEGIN DYNAMIC \\: (\\w+) -->([\\d\\D]*?)\\<\\!-- END DYNAMIC : \\1 -->"
(?=)、(?<=) 是匹配字符间空隙的,把满足条件的从字符间的缝隙进行拆分。这个可能不好理解,有兴趣的话看看这个帖子:
http://topic.csdn.net/u/20080716/22/80cdd418-a0e9-4e7e-8435-df6d4bc11c4a.html
s = s.replaceAll("\\{", ",{");
s = s.replaceAll("\\}", "},");
System.out.println(s);
我想要safgdgd,<!-- BEGIN DYNAMIC : somePictures -->\n <img src={PICTURE}>\n <!-- END DYNAMIC : somePictures -->,dfhfghgfjh
ArrayList list=new ArrayList();
boolean end=false;
while(!end)
{
p=Pattern.compile("\\<\\!-- BEGIN DYNAMIC \\: (\\w+) -->([\\d\\D]*?)\\<\\!-- END DYNAMIC : \\1 -->");
match=p.matcher(str1);
int start=0;
if(match.find())
{
int i=str1.indexOf(match.group());
if(start<i)
{
list.add(str1.substring(start,i));
list.add(match.group());
start=i+match.group().toString().length();
str1=str1.substring(start);
}
}
else
{
list.add(str1);
end=true;
}
}