我正在寻找一个正则表达式来删除不需要的字符串末尾的字符,但是可能会在字符串的较早位置出现(这是正常的情况)。

这是一个应解析为“ CARVER HOUSE-KITCHEN”的示例

CARVER HOUSE - KITCHEN(
CARVER HOUSE - KITCHEN[
CARVER HOUSE - KITCHEN - (
CARVER HOUSE - KITCHEN :


这是另一个应解析为“ CARVER HOUSE:(NIGHT)[N1]-KITCHEN”的示例

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


因此,基本上,应该找到最后一个字母或数字,然后删除所有其他内容。

另外,我不是要寻找一个大的凌乱方法来逐个字符地查找最后一个字母数字。这实际上应该可以在一两行代码中完成。

谢谢

最佳答案

您可以使用诸如\W+$之类的正则表达式在字符串末尾查找非单词字符并将其替换。

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


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

关于java - 从字符串末尾删除多余字符的好的正则表达式是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32854182/

10-11 04:16