3

假设我有一些字符串Foo3,5barFoo14,5bar例如Foo23,42bar

我想使用 Java Regex 删除逗号后面的第二个数字以及逗号。

到目前为止,我已经尝试过String.replaceAll("(?<=Foo\d{1,2}),\d{1,2}", ""),将(?<=Foo\d{1,2}),\d{1,2}其用作我的正则表达式,但它不起作用。

4

4 回答 4

1
str = str.replaceFirst(",\\d+$")
于 2013-04-18T21:46:58.220 回答
1

具有正则表达式支持的使用String#replaceAll

String str = "Foo3,4HelloFoo5,3World";
str = str.replaceAll("(\\d),\\d+", "$1"); // Foo3HelloFoo5World

或者,如果您想在逗号后将匹配限制为最多 2 位数字,请使用:

str = str.replaceAll("(\\d),\\d{1,2}", "$1"); // Foo3HelloFoo5World

现场演示:http: //ideone.com/5P1guJ

于 2013-04-18T21:47:18.043 回答
0

怎么样 Integer.valueOf(str.substring(string.lastIndexOf(",")+1)); 正则表达式是必要的吗?

于 2013-04-18T21:47:04.393 回答
0

您的正则表达式几乎是正确的。您忘记\在正则表达式中转义。正确的是:

(?<=Foo\\d{1,2}),\\d{1,2}

请注意,\\而不是\.

有关您的字符串的演示,请参见https://ideone.com/W7IuT1

于 2013-04-18T21:50:03.487 回答