从R中的字符串中获取电话号码

时间:2017-04-06 14:00:27

标签: r regex

我有一些载体如下:

我将所有字符,特殊字符转换为X

xxxxxx18002514919xxxxxxxxxxxxxxxxxxxxxxxxxx24XXXXXX7

xxxxxx9000012345xxxxxxxxxxxxx34567xxxxxxxxxxxxx1800XXXXXX7

如何从R

中的上述字符串中仅获得11位数或10位数的电话号码

我想要的输出是: 首字符串:18002514919 第二个字符串:9000012345

1 个答案:

答案 0 :(得分:0)

您可以使用stringr来解决您的问题。有一个名为str_extract_all的功能可以根据需要提取电话号码。

正则表达式: \\d - >代表数字, {n,m} - >花括号用于匹配数字的时间。这里n应用于最小匹配数,m是匹配数的最大数。因为你想要匹配长度在10到11之间的电话号码.n变为10,m变为11。

X <- c("xxxxxx18002514919xxxxxxxxxxxxxxxxxxxxxxxxxx24XXXXXX7","xxxxxx9000012345xxxxxxxxxxxxx34567xxxxxxxxxxxxx1800XXXXXX7")
library(stringr)
str_extract_all(X,"\\d{10,11}")

<强>答案:

> str_extract_all(X,"\\d{10,11}")
[[1]]
[1] "18002514919"

[[2]]
[1] "9000012345"

如果您确定一个标量只包含一个电话号码,请使用str_extract

> str_extract(X,"\\d{10,11}")
[1] "18002514919" "9000012345"