我试图掩盖"123-12-1234"到"XXX-XX-1234"的SSN.我能够使用下面的代码.
string input = " 123-12-1234 123-11-1235 ";
Match m = Regex.Match(input, @"((?:\d{3})-(?:\d{2})-(?<token>\d{4}))");
while (m.Success)
{
if (m.Groups["token"].Length > 0)
{
input = input.Replace(m.Groups[0].Value,"XXX-XX-"+ m.Groups["token"].Value);
}
m = m.NextMatch();
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法使用Regex.Replace方法在一行中完成它.
我写了一个RegEx for password,它接受最小长度为5,最大长度为30的任何字符.
我试过以下表达式:
(\S){5,30}
Run Code Online (Sandbox Code Playgroud)
但它也接受超过30个字符的密码.如何确保它与此类密码不匹配?