从字符串末尾删除无关字符有什么好的正则表达式?

时间:2015-09-29 21:36:11

标签: java regex

我正在寻找一个正则表达式来删除不需要的字符串末尾的字符,但可能在字符串的前面出现(这是预期的和好的)。

以下是一个应该解决的例子#CAR; HOVER HOUSE - KITCHEN"

CARVER HOUSE : (NIGHT)[N1] -  KITCHEN(
CARVER HOUSE : (NIGHT)[N1] -  KITCHEN[
CARVER HOUSE : (NIGHT)[N1] -  KITCHEN - (
CARVER HOUSE : (NIGHT)[N1] -  KITCHEN : 

这是另一个应该解决的例子:#COURVER HOUSE :(夜晚)[N1] - KITCHEN"

{{1}}

所以基本上,应该找到最后一个字母或数字,其他一切都被打破了。

另外,我并没有找到一个字符粗俗的方法来找到最后一个字母数字。这应该可以在一行或两行代码中完成。

由于

1 个答案:

答案 0 :(得分:7)

您可以使用\W+$这样的正则表达式来查找字符串末尾的非单词字符并替换它们。

String s = "CARVER HOUSE : (NIGHT)[N1] -  KITCHEN - (";
s = s.replaceAll("\\W+$", "");
System.out.println(s);

结果为CARVER HOUSE : (NIGHT)[N1] - KITCHEN