问题描述
用来添加HTML源码中所有属性值的双引号比如:<font size=3 height="12" width=166 > 替换成<font size="3" height="12" width="166"><style class=LFJDLJFF>替换成 <style class="LFJDLJFF">考虑属性值后紧跟 空格 或 ">"对正则表达式的函数不熟悉,并求替换函数,自己写了一半,发现解决不了问题!~ String regEx = "(^\s.*)=[^"]\w*(\s*)|(>$)"; Pattern pattern = Pattern.compile(regEx); String srcString =" size=3df">"; Matcher m = pattern.matcher(srcString); boolean bb = m.find(); System.out.print(bb);result:ture
解决方案
// 写的一段,可能有些方面没有考虑完全,你可以参考一下 String fontStr = "<font size=3 height="12" width=166>"; String styleStr = "<style class=LFJDLJFF>"; Pattern p = Pattern.compile("="?[^\s]*"?[\s>]"); Matcher m = p.matcher(fontStr); StringBuffer sb = new StringBuffer(); while (m.find()) { String s = m.group().trim(); s = s.replaceAll("="?", "=""); if (!s.endsWith(""")) { s += """; } s = s.replaceAll(""?>"?", "">"); m.appendReplacement(sb, s + " "); } m.appendTail(sb); System.out.println(sb.toString().trim());