在Java中获取字符串整数结束的最佳方法?

时间:2014-05-02 21:06:30

标签: java regex string-parsing

给定一个由字母,数字和下划线组成的标识符foo,我想在最后一个整数上拆分字符串。例子:

"hello" => "hello", ""
"hello0" => "hello", "0"
"hello001" => "hello", "001"
"h123ello123" => "h123ello", "123"

我想我可以使用正则表达式来提取这些信息,但不确定这是最干净的方法(如果是,那表达式会是什么样子)。

2 个答案:

答案 0 :(得分:4)

将此正则表达式用于Pattern.matcher(string)方法调用:

^(.+?)(\d*)$

在Java中:

Pattern p = Pattern.compile( "^(.+?)(\\d*)$" );

然后使用matcher.group(1)matcher.group(2)为您的匹配(在致电matcher.find()后)

答案 1 :(得分:1)

您可以使用此拆分

split("(?=\\d*$)",2);

它将在before zero or more个数字(\\d)之后拆分,其后面有字符串$的结尾(这意味着它们位于字符串的末尾)。
参数2会将结果数组的大小限制为两个元素,以防止此正则表达式在我标记为|下面的地方进一步分割

hello0|0|1

因此结果为hello 001

<强> DEMO