正则表达式删除字符串中的最后一个单词+附加字符

时间:2012-10-19 03:21:25

标签: java regex

我从服务器获取一个String,我必须使用正则表达式来解析它。

我知道如何使用String函数(String.split等)来实现它,而不是使用正则表达式,这是函数要求。

字符串看起来像这样:

12345 <RECTANGLE> 100 200 300 400 </RECTANGLE>

我必须使用正则表达式使String成为:

12345 RECTANGLE 100 200 300 400

所以基本上,我必须删除以下所有字符:“&lt;”,“&gt;”和“/”。我还必须删除最后一个单词,所以我想我甚至不必检查“/”,因为删除最后一个单词也可能会删除斜杠。

现在我有:

shapeString.replaceAll("[</>]", "");

它删除了我不需要的字符,但我不知道如何删除最后一个字。

2 个答案:

答案 0 :(得分:6)

您可以添加

str.replaceAll(" [^ ]+$", "")

删除最后一个单词及其前面的空格。

这是a link to ideone with a running example

答案 1 :(得分:2)

您可以使用replaceAll或者使用此代码:

shapeString = shapeString.substring(0, shapeString.lastIndexOf(' '));

删除最后一个单词。