使用R验证列是否包含格式正确的电话号码

时间:2014-07-10 06:47:34

标签: regex r pattern-matching

我在包含电话号码的数据框(df)中有一列。我需要检查电话号码是否符合以下格式:

X XXX XXX-XXXX

我希望输出为:

         phone              
1 234 564-8988    TRUE                                 
22 32545-35647   FALSE                           
1-222-225-0202   FALSE              

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以在R中使用grepl。我在这里调用新列TF

> d <- data.frame(phone = c("1 234 564-8988", 
                            "22 32545-35647", "1-222-225-0202"))
> d$TF <- grepl("[0-9] [0-9]{3} [0-9(-)0-9]", d$phone)
> d
#            phone    TF
# 1 1 234 564-8988  TRUE
# 2 22 32545-35647 FALSE
# 3 1-222-225-0202 FALSE

更简单的说,正则表达式可以正常为"^[0-9] ",因为您只希望电话号码以一个数字开头,然后是一个空格。

答案 1 :(得分:0)

您可以尝试将此选项仅匹配此X XXX XXX-XXXX格式的电话号码

^[0-9] [0-9]{3} [0-9]{3}-[0-9]{4}$