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

Java 正则表达式删除字符串中的最后一个单词+;附加字符,java,regex,Java,Regex,我从服务器上得到一个字符串,我必须使用正则表达式来解析它 我知道如何使用字符串函数(String.split等),但不知道如何使用正则表达式,这是家庭作业的要求 字符串如下所示: 12345 <RECTANGLE> 100 200 300 400 </RECTANGLE> 因此,基本上,我必须删除以下所有字符:“和”/。我还必须删除最后一个单词,所以我想我甚至不必检查“/”,因为删除最后一个单词可能也会删除斜杠 现在我有: shapeString.replaceAll(

我从服务器上得到一个字符串,我必须使用正则表达式来解析它

我知道如何使用字符串函数(String.split等),但不知道如何使用正则表达式,这是家庭作业的要求

字符串如下所示:

12345 <RECTANGLE> 100 200 300 400 </RECTANGLE>
因此,基本上,我必须删除以下所有字符:“和”/。我还必须删除最后一个单词,所以我想我甚至不必检查“/”,因为删除最后一个单词可能也会删除斜杠

现在我有:

shapeString.replaceAll("[</>]", "");
shapeString.replaceAll(“[]”,“”);
它删除了我不需要的字符,但我不知道如何删除最后一个单词。

您可以添加

str.replaceAll(" [^ ]+$", "")
删除最后一个单词及其前面的空格


以下是。

您可以使用
replaceAll
或者:

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

用于删除最后一个单词。

@AdamSmith您可以将它们链接在一起。按照答案中的链接查看正在运行的演示。谢谢,它工作得非常好!我不知道要删除最后一个单词的正则表达式。另外,我没有想到使用两个replaceAll调用。我在一个循环中使用了它,如果字符串末尾有一个空格,并且没有删除任何内容,那么它会导致一个无限循环,因此如果您先修剪它,它会很好地工作。谢谢
shapeString = shapeString.substring(0, shapeString.lastIndexOf(' '));