尝试在匹配后删除最多2位数字

时间:2013-04-18 21:43:32

标签: java regex

说我有一些字符串,如Foo3,5barFoo14,5barFoo23,42bar

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

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

4 个答案:

答案 0 :(得分:1)

str = str.replaceFirst(",\\d+$")

答案 1 :(得分: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

答案 2 :(得分:0)

Integer.valueOf(str.substring(string.lastIndexOf(“,”)+ 1)); 正则表达式是必需品吗?

答案 3 :(得分:0)

你的正则表达式几乎是正确的。你忘了逃避正则表达式中的\。正确的是:

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

请注意\\而不是\

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