我有社会安全号码的正则表达式。我有一个新的要求,即要求正则表达式只匹配"当确定5个或更多时。我尝试了几种排列,但我一直都无法解决这个问题。
我的正则表达式:
((?!000|666|9\d{2})([0-8]\d{2}[- ]\d{2}[- ]\d{4}))
我试过了
((?!000|666|9\d{2})([0-8]\d{2}[- ]\d{2}[- ]\d{4})){5,}
哪个不起作用。有什么我想念的吗?
答案 0 :(得分:0)
看起来您的模式不允许SSN之间的任何分隔符。当我测试它时(使用寻找两次重复的版本),它适用于333 33 3333444 44 4444
之类的输入,但如果SSN之间有换行符/制表符/空格/等,它就不起作用。您可能需要将允许的分隔符列表添加到模式的末尾(可能后跟?
或*
字符,因为列表中的最后一个SSN可能不会以一个结束。
例如,如果您的SSN之间有逗号和可能的空格,则您的模式的修订版本可能
((?!000|666|9\d{2})([0-8]\d{2}[- ]\d{2}[- ]\d{4})[, ]*){5,}