3 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
像這樣的簡單正則表達(dá)式應(yīng)該可以工作:
(?:00)+$
替換為空字符串。
我使用非捕獲組而不是字符類將 2 個(gè)零組合在一起,然后添加一個(gè)+
量詞以僅匹配 2 個(gè)零的“倍數(shù)”,即偶數(shù)個(gè)零。
演示
如果您想要一個(gè)可以匹配而不是替換的正則表達(dá)式,則可以使用:
^\d+?0?(?=(?:00)*$)
懶惰地尋找數(shù)字,直到我們達(dá)到 0。我們是否匹配這個(gè)零?這取決于我們是否在它之后看到偶數(shù)個(gè) 0。但是,這不適用于全 0 的情況,例如0000
,但是由于您說您永遠(yuǎn)不會(huì)遇到此值,因此您不必太擔(dān)心。
演示

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
試試這個(gè)正則表達(dá)式:
(?:00)*$
用空白字符串替換每個(gè)匹配項(xiàng)。
解釋:
(?:00)*
- 匹配 0 次或多次出現(xiàn)的00
.$
- 斷言行尾。

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = "(00)*$";
final String string = "12345678\n"
+ "12400000\n"
+ "12005600\n"
+ "12340000\n"
+ "12000000\n"
+ "12340000\n"
+ "12345000";
final String subst = "";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
下面是結(jié)果
Substitution result: 12345678
1240
120056
1234
12
1234
123450
添加回答
舉報(bào)