假设我有一些字符串Foo3,5bar
,Foo14,5bar
例如Foo23,42bar
我想使用 Java Regex 删除逗号后面的第二个数字以及逗号。
到目前为止,我已经尝试过String.replaceAll("(?<=Foo\d{1,2}),\d{1,2}", "")
,将(?<=Foo\d{1,2}),\d{1,2}
其用作我的正则表达式,但它不起作用。
str = str.replaceFirst(",\\d+$")
具有正则表达式支持的使用String#replaceAll
:
String str = "Foo3,4HelloFoo5,3World";
str = str.replaceAll("(\\d),\\d+", "$1"); // Foo3HelloFoo5World
或者,如果您想在逗号后将匹配限制为最多 2 位数字,请使用:
str = str.replaceAll("(\\d),\\d{1,2}", "$1"); // Foo3HelloFoo5World
怎么样 Integer.valueOf(str.substring(string.lastIndexOf(",")+1)); 正则表达式是必要的吗?
您的正则表达式几乎是正确的。您忘记\
在正则表达式中转义。正确的是:
(?<=Foo\\d{1,2}),\\d{1,2}
请注意,\\
而不是\
.
有关您的字符串的演示,请参见https://ideone.com/W7IuT1。