gpt4 book ai didi

c# - 使用正则表达式格式化 ssn

转载 作者:行者123 更新时间:2023-11-30 14:40:28 26 4
gpt4 key购买 nike

您好,我需要 c sharp 中的正则表达式才能以 xxx-xx-6789 的格式显示 SSN。即 123456789 应在文本字段中显示为 xxx-xx-6789。我现在写的代码是

string SSN = "123456789";
Regex ssnRegex = new Regex("(?:[0-9]{3})(?:[0-9]{2})(?:[0-9]{4})");
string formattedSSN = ssnRegex.Replace(SSN, "XXX-XX-${last}");

屏蔽 ssn xxx-xx-6789 的正确正则表达式是什么?

最佳答案

您在替换字符串中使用 last 作为命名组,而没有在您的模式中指定它。

如下更新您的模式,您现有的代码应该可以工作:

(?:[0-9]{3})(?:[0-9]{2})(?<last>[0-9]{4})

根据您的输入,您可能希望通过使用 ^$ 元字符来匹配字符串的开头和结尾来限制模式以匹配整个输入,分别。通过这样做,正则表达式将不会匹配具有超过 9 个连续数字的输入。这看起来像:

^(?:[0-9]{3})(?:[0-9]{2})(?<last>[0-9]{4})$

此外,由于您只关心最后 4 位数字,因此您可以选择匹配 5 个数字,然后是 4 个数字,而不是将其分成 3 组:

^(?:[0-9]{5})(?<last>[0-9]{4})$

此外,如果你的输入总是9个数字并且是可信的,那么就不需要正则表达式了。您可以简单地获取子字符串以提取最后 4 个字符:

string SSN = "123456789";
string formattedSSN = "XXX-XX-" + SSN.Substring(SSN.Length - 4, 4);

关于c# - 使用正则表达式格式化 ssn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5254197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com