正则表达式删除除最后一个字符以外的所有内容

RegEx strip everything except last character

我有几行结构与此类似,我想删除除最后一个字符以外的所有内容。任何人都可以就正则表达式提出建议,到目前为止我发现的所有内容都是删除模板之后的所有内容,最后以 P,T,U

等等,对于所有这些行,我想以: <name>Doc_TEMPLATE_P <name>Doc_TEMPLATE_T <name>Doc_TEMPLATE_U

在 Java 你可以做:

str = str.replaceAll("^(.*_).*", "P");

RegEx Demo

正如我在上面的评论中所写 - 您可以(并且应该)使用 string.length 来仅获取最后一个字符 - 在这种情况下使用正则表达式没有附加价值!

String str = "<name>Doc_TEMPLATE_P";
str = str.substring(str.length()-1);
System.out.println("str = " + str); // prints: "str = P"