[英]Replace Leading Zeros
給定一個包含以下內容的字符串:
Count %
===========
00000 000%
00012 001%
00905 099%
我希望它看起來像這樣:
Count %
===========
0 0%
12 1%
905 99%
我能得到的最接近的是:
Count %
===========
%
12 1%
905 99%
使用此代碼:
strv.replaceAll("\\b0+", " ")
由於您希望空間保持原樣,因此將每個0
匹配,然后替換為空格非常重要: '。 看一下這個正則表達式:
(?<=\b|\G)0(?=\d)
(?<=\\b|\\G)
是正向后移,可確保匹配的0
以\\b
或\\G
開頭
\\b
表示單詞邊界,這意味着\\b0
將幫助匹配第一個零 \\G
幫助在上一個比賽的末尾(將在前一個零之后)斷言位置。 因此,它將有助於匹配下一個零,依此類推。 因此僅形成0
的連續鏈。 \\b
開頭,因此無法形成10000
因為單詞邊界\\b
在1
之前而不是0
(?=\\d)
,因為如果輸入僅包含零,那么我們需要在后面保留一個零。 該正向提前指示引擎使所有零與后跟一個數字匹配 。 因此,如果輸入為0000
,則正則表達式將匹配前3個0
,因為后一個不跟數字 。 用法
strv.replaceAll("(?<=\\b|\\G)0(?=\\d)", " ")
編輯:根據@SebastianProske的建議進行更新。 謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.