java正则表达式替换标签内容_使⽤Java正则表达式替换HTML
标签
⼀、实现⽬标
实现多个个HTML页的合并预览,需要如下处理
1)去掉meta标签
2)替换input标签,只保留value值(因为是预览,不保留输⼊框)
3)移除隐藏的input标签,即type="hidden"
4)替换textarea标签,只保留内容
5)移除script标签
⼆、代码实现
这⾥主要使⽤String的replaceAll⽅法实现标签的替换,当然你可以可以使⽤正则表达式的分组匹配和替换来完成。//contentString为HTML内容
//替换所有的meta标签,这⾥只⽀持单⾏替换
placeAll("", "");
//移除script标签,⽀持多⾏,忽略⼤⼩写
placeAll("(?is)(.*?)", "");
//移除所有的type为hidden的input标签
placeAll("(?is)", "");
//替换所有的textarea,只保留值
placeAll("(?is)(.*?)", "$1");
//替换input标签,只保留值
placeAll("(?is)", "$1");
三、⼏个关键点
上⾯的替换有以下⼏个关键点:
1)对于HTML替换需要⽀持多⾏和忽略⼤⼩写的情况,正则表达式需声明为(?is)。参考上⾯代码中的⽰例。
replaceall()2)因为Html标签的不规范,对于value值存在以下⼏种情形,value=aaa/> value=aaa> value='aaa' value="aaa",因此对于value值的判断稍显复杂,参考:,value后可能会多个空格\\s*;=等号以后可能有空格\\s*,value值开始前可能存在",'符号,最后是value结束符可能为:",',空格,/。
3)使⽤分组替换的话,记得使⽤()分组,以及后⾯的替换值使⽤$1、$2等来指定分组。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。