提取电话号码正则表达式

泰勒·林克

如何从文本文件中提取电话号码?

x <- c(" Mr. Bean bought 2 tickets 2-613-213-4567 or 5555555555 call either one",
  "43 Butter Rd, Brossard QC K0A 3P0 – 613 213 4567", 
  "Please contact Mr. Bean (613)2134567",
  "1.575.555.5555 is his #1 number",  
  "7164347566"
)

对于其他语言,已经回答了这个问题(请参阅php abd常规regex),但对于R来说似乎还没有解决。

我已经搜索并找到了可能的正则表达式来查找电话号码(除了上述其他语言的正则表达式之外):http ://regexlib.com/Search.aspx?k=phone但无法在gsub内部使用用R提取示例中的所有这些数字。

理想情况下,我们会得到类似:

[[1]]
[1] "2-613-213-4567" "5555555555"    

[[2]]
[1] "613 213 4567"

[[3]]
[1] "(613)2134567"

[[4]]
[1] "1.575.555.5555"

[[5]]
[1] "7164347566"
马吕斯

这是我所能做到的最好的-您有多种格式,包括带空格的格式,因此正则表达式非常笼统。它只是说“寻找至少由5个字符组成的字符串,该字符串完全由数字,句点,方括号,连字符或空格组成”:

library(stringr)
str_extract_all(x, "(^| )[0-9.() -]{5,}( |$)")

输出:

[[1]]
[1] " 2-613-213-4567 " " 5555555555 "    

[[2]]
[1] " 613 213 4567"

[[3]]
[1] " (613)2134567"

[[4]]
[1] "1.575.555.5555 "

[[5]]
[1] "7164347566"

前导/尾随空格可能会固定一些额外的复杂性,或者您可以在发布后对其进行固定。

更新:经过一番搜索,我找到了这个答案,我对其稍加修改以允许使用句号。在要求输入有效的电话号码方面更加严格,但似乎涵盖了您的所有示例:

str_extract_all(x, "\\(?\\d{3}\\)?[.-]? *\\d{3}[.-]? *[.-]?\\d{4}")

输出:

[[1]]
[1] "613-213-4567" "5555555555"  

[[2]]
[1] "613 213 4567"

[[3]]
[1] "(613)2134567"

[[4]]
[1] "575.555.5555"

[[5]]
[1] "7164347566"

一旦您取出了and的两端,这里发现的怪兽也可以使用。仅在确实需要时使用:^$

huge_regex = "(?:(?:\\+?1\\s*(?:[.-]\\s*)?)?(?:\\(\\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\\s*\\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\\s*(?:[.-]\\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\\s*(?:[.-]\\s*)?([0-9]{4})(?:\\s*(?:#|x\\.?|ext\\.?|extension)\\s*(\\d+))?"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl电话号码正则表达式

来自分类Dev

正则表达式与荷兰电话号码

来自分类Dev

阿联酋电话号码正则表达式

来自分类Dev

正则表达式用于拆分电话号码

来自分类Dev

匹配电话号码,正则表达式

来自分类Dev

正则表达式的电话号码?

来自分类Dev

特定电话号码正则表达式

来自分类Dev

电话号码正则表达式

来自分类Dev

瑞典电话号码正则表达式

来自分类Dev

正则表达式-电话号码-Android

来自分类Dev

正则表达式红宝石电话号码

来自分类Dev

法国电话号码的正则表达式

来自分类Dev

正则表达式验证电话号码扩展

来自分类Dev

使用正则表达式清理电话号码

来自分类Dev

荷兰电话号码的正则表达式

来自分类Dev

电话号码的正则表达式

来自分类Dev

正则表达式的电话号码?

来自分类Dev

MVC 5正则表达式电话号码

来自分类Dev

正则表达式寻找好的电话号码

来自分类Dev

电话号码匹配正则表达式

来自分类Dev

用于电话号码验证的正则表达式

来自分类Dev

日本电话号码的正则表达式

来自分类Dev

正则表达式识别电话号码

来自分类Dev

电话号码以 + 开头的正则表达式

来自分类Dev

正则表达式电话号码

来自分类Dev

波兰电话号码的正则表达式

来自分类Dev

html中电话号码的正则表达式

来自分类Dev

电话号码的正则表达式验证

来自分类Dev

电话号码的 Javascript 正则表达式