我有一个包含表格的 HTML 字符串。但是在某些情况下,标签
后面会有字符。
我想从字符串中删除标签之后的所有内容。
关于我如何在 Java 中做到这一点的任何想法?</table>
</table>
问问题
986 次
4 回答
3
假设str
是这个字符串,您可以执行以下操作:
str = str.replaceAll("</table>.*","</table>");
于 2012-05-04T13:30:57.413 回答
1
正如@Andrew Logvinov 所建议的那样使用正则表达式。
str.replaceAll("</table>.*","</table>");
这意味着:将文字字符串"</table>"
后面跟随任何.
重复零次或多次的字符*
,并将其替换为文字字符串"</table>"
请注意,此方法会替换所有(因此它需要第一个匹配项并删除字符串的其余部分),因此如果您有多个表或嵌套表,这将不会有任何好处。学习使用正则表达式以获得更好的解决方案。(或者只使用 indexOf 和 String 类中的任何方法)
于 2012-05-04T13:47:57.817 回答
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);
于 2012-05-04T13:31:05.040 回答
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()”恕我直言!
于 2012-05-04T13:45:10.643 回答