修剪字符串末尾的数字

时间:2013-07-23 11:32:11

标签: java regex string trim

我想修剪字符串中最后出现的数字字符 例如:

  • "abc123" => "abc"
  • "abc12xyz34" => "abc12xyz"

写在片段下面以提取它。只想探索是否可以通过正则表达式来完成

private static  String getNumericTrimmedString(String s)
{

    for(int i = s.length()-1; i >=0 ; i--){
        final char c = s.charAt(i);
        if(!(c > 47 && c < 58)){
            return s.substring(0,i+1);
        }
    }
    return "";
}

此致 Brinal

3 个答案:

答案 0 :(得分:6)

是的,可以做到:

String s = "abc12xyz34";
System.out.println( s.replaceAll("\\d+$", "" ) );

正则表达式的解释:

  • \d+匹配至少一位数的序列
  • $匹配输入的结尾

因此,您可以使用空字符串替换字符串末尾的任何数字,从而有效地删除它们。

答案 1 :(得分:6)

您可以使用以下正则表达式:

private static String getNumericTrimmedString(String s) {
    return s.replaceAll("\\d+$", "");
}

\\d+查找一个或多个数字
$是字符串

的结尾

答案 2 :(得分:3)

怎么样:

s = s.replaceAll("\\d*$","");