标准化电话号码数据

时间:2019-01-14 16:56:24

标签: r regex

我正在为此寻求更优雅的解决方案:

phone_number <- function(x) {
x <- gsub("[\\() -]", "", x) 
x <- gsub("^(.{3})(.{3})(.*)","\\1-\\2-\\3", x, perl = TRUE)
}

这将需要这样的数据:

(123) 123-1234
123-123-1234
123 123-1234

并产生这个:

123-123-1234
123-123-1234
123-123-1234

1 个答案:

答案 0 :(得分:5)

我们可以做到

gsub(".*(\\d{3}).*(\\d{3}).*(\\d+).*?", "\\1-\\2-\\3", x)
# [1] "123-123-1234" "123-123-1234" "123-123-1234"

假设一个字符中某处只有三组数字,而这正是我们所需要的。