我正试图屏蔽一些机密信息,这些信息可以是任何字母数字字符串。
示例1
屏蔽前- PMGKJGFWB125屏蔽后- PMG******125
示例2
屏蔽前- 19000屏蔽后- 1**00
我在c#中尝试过类似的东西
正则表达式。替换(年代,@" d (? ! d{0, 3} $)","*")
字符串的长度可能不同,因此不能添加硬编码偏移量。
我能得到一些帮助吗?
Thanks in advance
看起来,大概大概,你想把字符串分成四份然后用星号标记中间的两份
别太专业了。
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, for "笑:
(int f, int t) = (str.Length/4, str.Length*3/4);
return string.Concat(str.Select((c,i)=>f<i&&i<t?'*':c)));