如何从同一个字符串返回多个电话号码?

时间:2015-03-02 15:19:58

标签: regex r

我开始学习如何使用正则表达式来解析文本中的信息。我已经能够在R中写一个表达式,根据我在文本文件中看到的不同变化从字符串中提取电话号码。

reg_expr <- "\\(?1?\\s?-?\\(?\\d{3})?\\s?-?\\d{3}\\s?-?\\d{4})?"  
data[, Phone := str_extract(Text, reg_expr)]

但我不知道如何修改它以从同一文本字符串返回2个电话号码。例如:

&#34;您好,请致电123-456-7890,或致电1-800-987-6543加快服务。&#34;

因此,如果我的数据表中的第一列是文本字符串,则第二列(电话)将显示123-456-7890。但我错过了提供的第二个电话号码。

有没有办法返回这两个数字?理想情况下,它会将它们放在电话栏中,如123-456-7890,1-800-987-6543。

我唯一的想法是将花括号放在正则表达式的末尾,但它似乎没有效果。

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该在stringr包中使用str_extract_all函数。

str_extract_all("Hi, please call 123-456-7890, or for faster service 1-800-987-6543.", reg_expr)
[1] " 123-456-7890"  "1-800-987-6543"