我开始学习如何使用正则表达式来解析文本中的信息。我已经能够在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。
我唯一的想法是将花括号放在正则表达式的末尾,但它似乎没有效果。
谢谢!
答案 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"