我试过restString = restString.replaceAll("\\<.*\\>", "");
和
restString = restString.replaceAll("\\<[^(\\>)]*\\>", "");
。
两者似乎都行不通。我不知道我是否可以代表正则表达式中的含义。
答案 0 :(得分:2)
要使用正则表达式解决此问题,您需要“环顾四周” - 使用lookbehind和lookbefore:
restString = restString.replaceAll("(?<=<).*(?=>)", "");
lookaround-expressions将由regex-engine评估,但它们不会成为匹配项的一部分。 这样就可以删除所有BETWEEN&amp; lt;和&amp; gt;
如果它应该是不正确的并且能够匹配多行,请使用像anubhava这样的表达式:
restString = restString.replaceAll("(?s)(?<=<).*?(?=>)", "");
要详细了解外观,请访问此页面:http://www.regular-expressions.info/lookaround.html
答案 1 :(得分:1)
制作正则表达式non-greedy
:
restString = restString.replaceAll("(?s)<.*?>", "");
我也使用(?s)
来制作点匹配换行符。