我有一个包含表格的HTML字符串
但是在某些情况下,</table>
标记后面会有字符
我想删除字符串中</table>
标记后的所有内容
关于如何用Java做这个的任何想法?
答案 0 :(得分:3)
假设str
是此字符串,您可以执行以下操作:
str = str.replaceAll("</table>.*","</table>");
答案 1 :(得分:1)
使用regular expressions作为@Andrew Logvinov建议。
str.replaceAll("</table>.*","</table>");
这意味着:将文字字符串"</table>"
与任何字符.
一起重复零次或多次*
,并将其替换为文字字符串"</table>"
< / p>
请注意,此方法替换所有(因此它需要第一个匹配并删除字符串的其余部分),因此如果您有多个表或嵌套表,则这将无效。学习使用正则表达式来获得更好的解决方案。 (或者只使用indexOf以及String类中的任何方法)
答案 2 :(得分:0)
String endTableTag = "</table>";
String html = "<table><tr><td>Hello</td></tr></table>yadayadayada";
int index = html.lastIndexOf(endTableTag);
String cleanedup;
if (index>-1) {
// Removes everything after the last table end tag
cleanedup = html.substring(0, index + endTableTag.length());
} else {
cleanedup = html;
}
System.out.println(cleanedup);
答案 3 :(得分:0)
String test = "testabc</table>anothertest</table>hahhah";
test = str.substring(0, (str.lastIndexOf("</table>")+"</table>".length()));
System.out.println(str.substring(0, (str.lastIndexOf("</table>")+"</table>".length())));
System.out.println(test);
或测试它......
test.replaceAll("</table>.*","</table>"); would be better! ;)
很好,但是如果你有更多1,你可能会遇到问题! ;)所以最好使用“lastIndexOf()”imho!