比如有这样的html代码: [code="java"]
[/code] 想要实现把、等标签中的“target”、“href”、"id"、"style"等信息去除,只留下单纯的、形式。我用了java字符串匹配替换的方法: [code="java"] private static String removeInTag(String a) { StringBuffer aaa = new StringBuffer(); aaa.append(a); int BeginIndex = 0; while(BeginIndex != -1){ BeginIndex = aaa.indexOf("<",BeginIndex); int StarIndex = aaa.indexOf(" ", BeginIndex); int EndIndex = aaa.indexOf(">", BeginIndex); int PreventErr = aaa.indexOf("<", BeginIndex); if ((PreventErr > EndIndex) && (StarIndex > StarIndex)){ aaa.replace(StarIndex, EndIndex, ""); } } return aaa.toString(); } [/code] 但出现了死循环,死循环的原因何在? 同时由于本人初学java,所以这个方法可能不是最好方法,有没有更高效、更不易出错的方法呢?谢谢!
[code="java"] private static String removeInTag(String a) { StringBuffer aaa = new StringBuffer(); aaa.append(a); int BeginIndex = 0; while(BeginIndex != -1){ BeginIndex = aaa.indexOf("<",BeginIndex); int StarIndex = aaa.indexOf(" ", BeginIndex); int EndIndex = aaa.indexOf(">", BeginIndex); int PreventErr = aaa.indexOf("<", BeginIndex); if ((PreventErr > EndIndex) && (StarIndex > StarIndex)){ aaa.replace(StarIndex, EndIndex, ""); } } return aaa.toString(); } [/code] 但出现了死循环,死循环的原因何在? 同时由于本人初学java,所以这个方法可能不是最好方法,有没有更高效、更不易出错的方法呢?谢谢!
收起
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
支付金额 15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意 《付费问题酬金结算规则》
[b]试试吧:[/b]
[code="java"] String aaa = "
System.out.println(aaa.replaceAll("<(/?\\S+)\\s*?[^<]*?(/?)>","<$1$2>")); // <div><li> <a>情感</a></li><li> <a>美容</a></li></div>[/code]
报告相同问题?