我有一些载体如下:
我将所有字符,特殊字符转换为X
xxxxxx18002514919xxxxxxxxxxxxxxxxxxxxxxxxxx24XXXXXX7
xxxxxx9000012345xxxxxxxxxxxxx34567xxxxxxxxxxxxx1800XXXXXX7
如何从R
中的上述字符串中仅获得11位数或10位数的电话号码我想要的输出是: 首字符串:18002514919 第二个字符串:9000012345
答案 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"