我怎样才能从完整的句子中获得ssn?

时间:2016-01-12 04:45:18

标签: ruby regex

我需要从这句完整的句子中获得ssn

please don't share this: 234-60-1422

我只需要这个

234-60-1422

这是我的函数#从字符串中返回社会安全号码。

def grab_ssn(string)
    ssn = /(\d{3})[^\d]?(\d{2})[^\d]?(\d{4})/
    returnString = ""
    if ssn =~ string
        print returnString = string.scan(ssn)
    else
        puts "not match"
    end
end

但我有这样的数组

[["234", "60", "1422"]]

有什么方法可以让文字格式不是数组吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

删除捕获组。 ruby中的scan方法首先选择捕获组而不是匹配。因此它只打印数组中捕获组的值。

ssn = /\d{3}[^\d]?\d{2}[^\d]?\d{4}/

必要时添加单词边界..

ssn = /\b\d{3}[^\d]?\d{2}[^\d]?\d{4}\b/