c# - 如何在 C# 中编写多条件 SSN 正则表达式
问题描述
当通过我们的应用程序的一部分提交社会安全号码时,我正在尝试使用正则表达式来掩盖。我们被告知要检查的条件是 SSN 是否以 123-45-6789 或 123 45 6789 发送(仅查找 3(空格或破折号)2 位(空格或破折号)3 位数字。
到目前为止我所拥有的:
Regex regex = new Regex("\d{3}-\d{2}-\d{4}");
var replacement = regex.Replace(comments, "SSN Hidden");
所以我知道正则表达式很接近,但对于破折号是不正确的,我需要帮助弄清楚如何合并空格。正则表达式的新手,在此先感谢。
解决方案
我建议使用
var replacement = Regex.Replace(comments, @"\d{3}([- ])\d{2}\1\d{4}", "SSN Hidden");
如果您需要将这些数字作为整个单词进行匹配,请考虑在模式 ( ) 周围使用单词边界。 或者,使用环视来确保两端没有其他数字:.\b
@"\b\d{3}([- ])\d{2}\1\d{4}\b"
@"(?<!\d)\d{3}([- ])\d{2}\1\d{4}(?!\d)"
要\d
仅匹配 ASCII 数字,请考虑传递RegexOptions.ECMAScript
选项.
细节
请参阅正则表达式演示。
推荐阅读
- amazon-web-services - AWS CodeBuild 解压后的大小必须小于 350198 字节
- powershell - 如何使用powershell检查服务器是否有重新启动挂起?
- python - 时间数据与格式不匹配 Python 错误
- r - 可以自定义 tbl_summary() 以在页脚显示重要性星吗?
- javascript - footable 3.1.5 过滤图标方向同时显示上下
- spring-boot - 用于 ManyToOne 而不是链接的 Spring PagingAndSorting 存储库加载对象
- ios - 从实时数据库中获取图像 URL - Firebase / Swift
- algorithm - 包含限制的 TSP 的 Bellman-Held-Karp 算法
- r - 用 mutate 函数替换条件下的值
- python - 如何使用函数列表来更新字典列表的值?