说我有一些字符串,如Foo3,5bar
,Foo14,5bar
和Foo23,42bar
我想使用Java Regex删除逗号后的第二个数字以及逗号。
到目前为止,我已尝试String.replaceAll("(?<=Foo\d{1,2}),\d{1,2}", "")
,使用(?<=Foo\d{1,2}),\d{1,2}
作为我的正则表达式,但它无效。
答案 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
答案 2 :(得分:0)
Integer.valueOf(str.substring(string.lastIndexOf(“,”)+ 1)); 正则表达式是必需品吗?
答案 3 :(得分:0)
你的正则表达式几乎是正确的。你忘了逃避正则表达式中的\
。正确的是:
(?<=Foo\\d{1,2}),\\d{1,2}
请注意\\
而不是\
。
有关字符串的演示,请参阅https://ideone.com/W7IuT1。