求一个正则表达式

SambaGao 2012-12-12 12:49:54
匹配开始<![CDATA[ 结尾是 ]]>.

例如:
<![CDATA[Your case # {!Case]]>

输出结果应该为Your case # {!Case} 把匹配上的结果清空。
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveofmylife 2012-12-13
  • 打赏
  • 举报
回复
!和<>不是元字符,不需要转义 String regex = "(?<=<!\\[CDATA\\[).*?(?=\\]\\]>)"; 即可
loveofmylife 2012-12-13
  • 打赏
  • 举报
回复
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//System.out.println(Double.compare(0,0));
		String regex = "(?<=\\<\\!\\[CDATA\\[).*?(?=\\]\\]\\>)";
		String str = "<![CDATA[  结尾是 ]]>";
		Matcher m =Pattern.compile(regex).matcher(str);
		while(m.find()){
			System.out.println(m.group());
		}
	}

}
安特矮油 2012-12-13
  • 打赏
  • 举报
回复
引用 2 楼 suciver 的回复:
引用 1 楼 ldh911 的回复:手打,没测试,试试看: str = str.replaceAll("<!\\[CDATA\\[(.*?)\\]\\]>", "$1"); 在稍微改动下,把特殊字符都转义下 str = str.replaceAll("\\<\\!\\[CDATA\\[(.*?)\\]\\]\\>", "$1");
str = str.replaceAll("^\\<\\!\\[CDATA\\[(.*?)\\]\\]\\>$", "$1");加上起始结尾符
suciver 2012-12-12
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
手打,没测试,试试看: str = str.replaceAll("<!\\[CDATA\\[(.*?)\\]\\]>", "$1");
在稍微改动下,把特殊字符都转义下 str = str.replaceAll("\\<\\!\\[CDATA\\[(.*?)\\]\\]\\>", "$1");
MiceRice 2012-12-12
  • 打赏
  • 举报
回复
手打,没测试,试试看: str = str.replaceAll("<!\\[CDATA\\[(.*?)\\]\\]>", "$1");

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧