正则表达式替换除了尾随数字之外的所有内容

时间:2017-10-03 07:52:24

标签: java regex string digits replaceall

这应该是非常简单的,但我无法找到答案,也无法想出答案。我有一个字符串,它总是有一个或多个尾随数字,其他地方可能有其他数字。我想删除字符串中的所有内容,除了所有尾随数字。

一些示例测试用例:

"1 test50"               ->  "50"
"anothertest10"          ->  "10"
"can contain spaces123"  ->  "123"
"ok1"                    ->  "1"

我尝试了最明显的事情:str.replaceAll(".*(\\d)+$","$1"),但不幸的是.*首先匹配,因此对于上面的测试用例,它会导致0,0,3,1而不是50,10,123,1

我觉得我需要使用后视或其他东西,虽然我过去几乎没有使用它们,但我不确定如何将它应用到我的问题中。

1 个答案:

答案 0 :(得分:1)

你可以使用正则表达式

\d+$

将匹配所有尾随数字,请参阅regex101 demo