删除“<”之间的任何内容和“>”在一个字符串中

时间:2013-10-22 17:52:24

标签: java regex string

我试过restString = restString.replaceAll("\\<.*\\>", "");

restString = restString.replaceAll("\\<[^(\\&gt)]*\\>", "");

两者似乎都行不通。我不知道我是否可以代表正则表达式中的含义。

2 个答案:

答案 0 :(得分:2)

要使用正则表达式解决此问题,您需要“环顾四周” - 使用lookbehind和lookbefore:

restString = restString.replaceAll("(?<=&lt;).*(?=&gt;)", "");

lookaround-expressions将由regex-engine评估,但它们不会成为匹配项的一部分。 这样就可以删除所有BETWEEN&amp; lt;和&amp; gt;

如果它应该是不正确的并且能够匹配多行,请使用像anubhava这样的表达式:

restString = restString.replaceAll("(?s)(?<=&lt;).*?(?=&gt;)", "");

要详细了解外观,请访问此页面:http://www.regular-expressions.info/lookaround.html

答案 1 :(得分:1)

制作正则表达式non-greedy

restString = restString.replaceAll("(?s)&lt;.*?&gt;", "");

我也使用(?s)来制作点匹配换行符。