我试过restString = restString.replaceAll("\\<.*\\>", "");
和
restString = restString.replaceAll("\\<[^(\\>)]*\\>", "");
.
两者似乎都不起作用。我不知道我是否可以表示正则表达式中的含义。
要使用正则表达式解决此问题,您需要“环顾四周” - 使用lookbehind 和lookbefore:
restString = restString.replaceAll("(?<=<).*(?=>)", "");
环视表达式将由正则表达式引擎评估,但它们不会成为匹配的一部分。这样就可以删除所有 BETWEEN < 和>
如果它应该是非贪婪的并且能够匹配多行,请使用 anubhava 建议的表达式:
restString = restString.replaceAll("(?s)(?<=<).*?(?=>)", "");
要了解有关环视的更多信息,请访问此页面:http ://www.regular-expressions.info/lookaround.html
制作你的正则表达式non-greedy
:
restString = restString.replaceAll("(?s)<.*?>", "");
我也曾经(?s)
使点匹配换行符。