我想使用正則表達式的問題是,星號(*
)必須的長度相匹配,以隱藏IP地址的最後兩節的IP地址(字符串)這些部分。如何掩蓋/隱藏,使用PHP和正則表達式
如:10.101.12.100
應該被重新格式化成10.101.**.***
這是我的工作代碼:
echo preg_replace('!(\d+).(\d+).\d+.\d+!s', '${1}.${2}.***.***', "10.101.12.100");
// Return: 10.101.***.***
這是可能的使用正則表達式?
PS:我知道我可以使用explode('.', ...)
與str_repeat('*', strlen(...))
一起打破它,但我覺得preg_replace
一個清晰的解決方案。我正在尋找「oneliner」解決方案。
只有具有一個自定義的回調函數。然後我猜'exlode'版本更容易....爲什麼它總是必須是一行?你應該把它放在一個函數中,然後你有一個「oneliner」。 –
@Felix,自定義回調可能是一個解決方案。好吧,它不是一個班輪,但它可能是一個'爆炸'解決方案更清潔。 – Cybrix
@Cybrix:開玩笑,我會說,你必須有「乾淨」 :) –