是否有一个正则表达式来掩盖一个动态字母数字字符串的中间区域?



我正试图屏蔽一些机密信息,这些信息可以是任何字母数字字符串。

示例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)));

相关内容

  • 没有找到相关文章

最新更新