我有一串字符,
String a = "abcd000324";
我想使用正则表达式从字符串中删除0,以产生字符串abcd324
是否有一个正则表达式值来替换字母字符后的某个字符(即0)但不删除324.如果字符串后面出现的数字也需要工作,即abcd0034505
应该导致abcd34505
答案 0 :(得分:3)
Yo可以使用此正则表达式进行搜索:
"$1"
并使用\D*
替换它,String repl = input.replaceFirst("^(\D*)0+", "$1");
是第一组的反向引用,即compile('com.google.android.gms:play-services-base:10.2.0') {
exclude group: 'com.android.support'
}
,即0个或更多非数字字符。
Java代码:
compile('com.google.android.gms:play-services-base:10.2.0') {
exclude group: 'com.android.support', module: 'support-v4'
}
答案 1 :(得分:2)
为了避免必须将部分正则表达式替换回自身,请使用正向lookbehind((?<=...)
):
(?<=\D)0+
如果它们前面有一些非数字字符,那么它将匹配一系列零 。你现在可以做
str.replaceFirst("(?<=\\D)0+", "")
无需传递对捕获组的任何引用。