簡體   English   中英

是否有正則表達式來屏蔽動態字母數字字符串的中間區域?

[英]Is there a regex to mask middle areas of a dynamic alphanumeric string?

我試圖掩蓋一些機密信息,這些信息可以是 ex 的任何字母數字字符串。

示例 1

遮蔽前 - PMGKJGFWB125 遮蔽后 - PMG******125

示例 2

屏蔽前 - 19000 屏蔽后 - 1**00

我在 C# 中嘗試這樣的事情

Regex.Replace(s, @"\\d(?!\\d{0,3}$)", "*")

字符串的長度可能會有所不同,因此我們無法添加硬編碼的偏移量。

我能得到一些幫助嗎?

提前致謝

看起來,粗略地說,你想把你的繩子分成四等分,然后把中間的兩個四等分星

不要太技術了。。

var str = "PMGKJGFWB125".ToCharArray();

for(int x = str.Length/4; x < str.Length*3/4; x++)
  str[x] = '*';

return new string(str);

您可以為不同長度的字符串調整 4,例如,如果您的字符串為 6 或更少,則可以使用 3 而不是 4 ......等

如果你想要它作為 LINQ,對於“那是什么?!” 笑:

(int f, int t) = (str.Length/4, str.Length*3/4);
return string.Concat(str.Select((c,i)=>f<i&&i<t?'*':c)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM