正则表达式

来源:互联网 发布:手机淘宝网app下载 编辑:程序博客网 时间:2024/04/30 15:20

今天程序遇到了字符串替换问题,需要使用到正则表达式处理,记录之:
<[^]+>这是匹配如<html><body>之 类的标签,[^>]这个是比较难理解的一处,以前刚学时也是完全看不懂,今天发现终于弄懂了所以就分享一下我的理解成果。这是一个贪婪匹配,就是匹 配除了“>”之外的任何字符,+是表示匹配一次或多次,中间的(.*)是匹配正文部分,”.”是匹配任意字符,*是表示任意次。后面的<\/ [^>]+>是匹配如</html></script>之类的结束标签,先来看看\/,第一个是转义字符,/在正则 里面不能直接使用,因为有特殊意义,需要用\转义一下,其他的都比较好理解了吧。

例子去除所有HTML代码,保留img,p标签
java代码实现:

String content = "<p align=\"center\"><img alt=\"\" src=\"http://www.lesohome.com/userfiles/image/20120604/041730352b4a19980e7110.jpg\" style=\"width: 605px; height: 250px\" /></p><p align=\"center\"><span style=\"color: #0000ff\">凤凰酒店签到处,各团友陆续到场签到</span></p>";System.out.println(content.replaceAll("<(?!img)(?!p)(?!/p)[^>]*>",""));

输出结果:
<p align="center"><img alt="" src="http://www.lesohome.com/userfiles/image/20120604/041730352b4a19980e7110.jpg" style="width: 605px; height: 250px" /></p><p align="center">凤凰酒店签到处,各团友陆续到场签到</p>