我正在为此寻求更优雅的解决方案:
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
答案 0 :(得分:5)
我们可以做到
gsub(".*(\\d{3}).*(\\d{3}).*(\\d+).*?", "\\1-\\2-\\3", x)
# [1] "123-123-1234" "123-123-1234" "123-123-1234"
假设一个字符中某处只有三组数字,而这正是我们所需要的。