求两个符号之间的所有闭合<>的正则表达式 <![CDATA[ asdasdasd<P>asdasd<a><b>asda</a>dsasd]]><![CDATA[ 阿嫂大<P>asda阿嫂大sd<a><b>嫂</a>dsasd]]>怎么删除所有<![CDATA[ ]]>中间的所有闭合<>标签前提是这些<>的闭合标签必须都在<![CDATA[ ]]>中间 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个应该不难吧对于<![CDATA[XXXXX]]>可以用2次正则 第一次找到String str = XXXXX第二次 把str中的<>替换成 空白最后组装输出<![CDATA[str]]> 看看这样符不符合你的要求。public class TestReg { public static void main(String[] args) { String src = "<![CDATA[ asdasdasd <P>asdasd <a> <b>asda </a>dsasd]]> <![CDATA[ 阿嫂大 <P>asda阿嫂大sd <a> <b>嫂 </a>dsasd]]> "; Pattern ptn = Pattern.compile("<!\\[CDATA\\[(.*?)\\]\\]>"); Matcher matcher = ptn.matcher(src); StringBuilder sb = new StringBuilder(src.length()); int index = 0; while(matcher.find()){ sb.append(src.substring(index, matcher.start())); index = matcher.end(); sb.append(matcher.group().replaceAll("</?\\w++>", "")); } System.out.println(sb.toString()); }} 发现一个bug,少了一句import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestReg { public static void main(String[] args) { String src = "<![CDATA[ asdasdasd <P>asdasd <a> <b>asda </a>dsasd]]> <![CDATA[ 阿嫂大 <P>asda阿嫂大sd <a> <b>嫂 </a>dsasd]]> hello"; Pattern ptn = Pattern.compile("<!\\[CDATA\\[(.*?)\\]\\]>"); Matcher matcher = ptn.matcher(src); StringBuilder sb = new StringBuilder(src.length()); int index = 0; while(matcher.find()){ sb.append(src.substring(index, matcher.start())); index = matcher.end(); sb.append(matcher.group().replaceAll("</?\\w++>", "")); } sb.append(src.substring(index)); System.out.println(sb.toString()); }} calibure 谢谢你的方法,很有用。我想问一下,有没有只用一个正则就全部替换的方法呢? 大家觉得在linux下开发java web怎么样呢 安装mysql出现的问题,请进来看看吧 怎样用程序调用Myeclipse中的Hibernate反响映射机制? jsp如何获得该文件的绝对路径? 数据库备份小问题 谁会struts2 Dynaimc Tree? Struts和EJB怎么弄在一块? Quartz的配置问题 问一个关于更新文件的问题!!!急 java+swing全局键盘事件监听问题 关于displaytag的问题 学生找工作!兼职!IT专业!有意者请进!
对于<![CDATA[XXXXX]]>
可以用2次正则
第一次找到String str = XXXXX
第二次 把str中的<>替换成 空白
最后组装输出<![CDATA[str]]>
public static void main(String[] args) {
String src = "<![CDATA[ asdasdasd <P>asdasd <a> <b>asda </a>dsasd]]> <![CDATA[ 阿嫂大 <P>asda阿嫂大sd <a> <b>嫂 </a>dsasd]]> ";
Pattern ptn = Pattern.compile("<!\\[CDATA\\[(.*?)\\]\\]>");
Matcher matcher = ptn.matcher(src);
StringBuilder sb = new StringBuilder(src.length());
int index = 0;
while(matcher.find()){
sb.append(src.substring(index, matcher.start()));
index = matcher.end();
sb.append(matcher.group().replaceAll("</?\\w++>", ""));
}
System.out.println(sb.toString());
}
}
import java.util.regex.Pattern;
public class TestReg {
public static void main(String[] args) {
String src = "<![CDATA[ asdasdasd <P>asdasd <a> <b>asda </a>dsasd]]> <![CDATA[ 阿嫂大 <P>asda阿嫂大sd <a> <b>嫂 </a>dsasd]]> hello";
Pattern ptn = Pattern.compile("<!\\[CDATA\\[(.*?)\\]\\]>");
Matcher matcher = ptn.matcher(src);
StringBuilder sb = new StringBuilder(src.length());
int index = 0;
while(matcher.find()){
sb.append(src.substring(index, matcher.start()));
index = matcher.end();
sb.append(matcher.group().replaceAll("</?\\w++>", ""));
}
sb.append(src.substring(index));
System.out.println(sb.toString());
}
}
我想问一下,有没有只用一个正则就全部替换的方法呢?