我需要从这句完整的句子中获得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"]]
有什么方法可以让文字格式不是数组吗?
谢谢!
答案 0 :(得分:2)
删除捕获组。 ruby中的scan
方法首先选择捕获组而不是匹配。因此它只打印数组中捕获组的值。
ssn = /\d{3}[^\d]?\d{2}[^\d]?\d{4}/
必要时添加单词边界..
ssn = /\b\d{3}[^\d]?\d{2}[^\d]?\d{4}\b/