【发布时间】:2018-10-04 14:11:47
【问题描述】:
我正在尝试在我的 oracle 查询中隐藏 SSN 详细信息。
使用以下查询来识别 SSN 格式并将其替换为给定格式。
- dddddddddd
- ddd-dd-dddd
选择 regexp_replace('123-45-6789', '(^|\D+?)(\d{3}-\d{2}-|\d{5})(\d{4})($|\D+?)', '\1*** **\3\4') 输出 来自双重
如果我运行此查询,我将得到以下输出。
*****6789
同样,我也想解析以下格式。
dd-dddddddd
或者如果连字符可以在任何地方可能会更好,但它应该只读取 9 位数字。
由于我对 RegEx 不太熟悉,有人可以帮我构建满足此要求的 regex 吗?
【问题讨论】:
-
那么,你只想屏蔽区号和组号?
-
是的,我想屏蔽区号和组号。我只想显示最后 4 位数字。
-
如果连字符在最后 4 位之间怎么办?
-
现在,我只需添加“dd-dddddd”以及“ddd-dd-dddd”和“ddddddddd”即可。