我正在研究siebel CRM。我的正则表达式中存在空间问题。
我有这些格式的SSN号码
123 456 789
123-456-789
123 45 6789
我需要显示我的SSN XXX-XX-4567
。我的正则表达式看起来像
([\s.:])(?!000)(?!666)(?!9[0-9][0-9])\d{3}[- ]?(?!00)\d{2}[- ]?(?!0000)\d{4})([\s.:]) |
([\s.:])(?!000)(?!666)(?!9[0-9][0-9])\d{3}[- ]?(?!00)\d{3}[- ]?(?!00)\d{3})([\s.:]).
如何删除上述表达式中的所有空格并显示上面提到的格式?
答案 0 :(得分:0)
您的RegEx中似乎存在语法错误。在第一部分的(?!0000)\d{4})
处有几个不匹配的括号,最后一个括号是不匹配的。
我想我已经设法编写了你正在寻找的正则表达式,但比你使用的那个更短:
([\s.:])((?!000)(?!666)(?!9[0-9]{2})\d{3})[- ]?((?!00)\d{2,3})[- ]?((?!00)\d{3,4})([\s.:])
这将匹配以下字符串:
123-12-1234
123 456 789
123-456-789
123 45 6789
但不符合以下条件:
666-45-1234
abc-12-1232
123-00-1233
123-224-0011
123 224 0000
这里有几个捕获组:
您应该能够使用此RegEx的结果以您需要的格式重建SSN。