2 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
正則表達(dá)式的解釋:
.(?=.{4})
.
: 匹配任意字符(?=
:先行條件的開始.{4}
: 斷言存在 4 個(gè)字符
)
: 前瞻條件結(jié)束
簡(jiǎn)而言之,它匹配輸入中當(dāng)前位置右側(cè)有 4 個(gè)字符的任何字符。
替換"*"
意味著對(duì)于 inout 中的每個(gè)匹配字符,替換為單個(gè)*
字符,從而在先行條件匹配失敗時(shí)替換信用卡號(hào)中除最后 4 個(gè)字符之外的所有字符(因?yàn)槲覀儾粫?huì)在當(dāng)前位置前面有 4 個(gè)字符) )。

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
?=.{4}
是積極的前瞻。它匹配括號(hào)內(nèi)的模式(當(dāng)前字符后的接下來(lái)的 4 位數(shù)字),而不將其包含在與.
所有其他字符匹配的主結(jié)果(括號(hào)外)中以替換為 *
假設(shè)您的正則表達(dá)式逐個(gè)字符地遍歷輸入。在第一個(gè)數(shù)字 (5) 上,它詢問“是否有一個(gè)字符后跟 4 個(gè)其他字符?是的,好的..用 * 替換 [the 5]”
它重復(fù)此操作,直到第 9 個(gè)(從末尾算起的第 4 個(gè)字符),此時(shí)“此后還有 4 個(gè)字符嗎?”問題變?yōu)椤胺瘛辈⑶姨鎿Q停止
添加回答
舉報(bào)