我试图string
用*(星号)掩盖名称,并排除第一个和第n个(第5个)字符。
例:
UserFirstName-> U **** F *******
我设法排除了第一个字符(?!^).
:
var regex = new Regex("(?!^).");
var result = regex.Replace(stringUserName, "*");
输出:
UserFirstName-> U ************
如何也排除第5位的角色?
您可以使用
(?!^)(?<!^.{4}).
图案细节
(?!^)
-(等于(?<!^)
您可以替代使用lookbehind)在字符串开始位置失败的否定超前(?<!^.{4})
-如果在字符串的开始位置紧靠当前位置的左侧,除了换行符以外还有其他四个字符,则负向后寻找将使匹配失败.
-除换行符外的任何单个字符。C#演示:
string text = "UserFirstName";
int SkipIndex = 5;
string pattern = $@"(?!^)(?<!^.{{{SkipIndex-1}}}).";
Console.WriteLine(Regex.Replace(text, pattern, "*"));
输出: U***F********
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句