sta*_*ith 2 ruby regex ruby-on-rails ruby-on-rails-3
我需要从rails中的大字符串中提取一些电话号码.这些号码将以多种格式出现,并且可以在一个字符串中包含多个电话号码.
以下是发生的格式类型的示例:
提取出现在文本正文中的电话号码的最有效方法是什么?
更新:谢谢你的答案.在对其中一些进行测试后,我意识到我应该包含更多示例.以下列表中未显示以下内容:
我会保持简单:
\d{2}[\s\d-]+
Run Code Online (Sandbox Code Playgroud)
两个数字,一个或多个空格,数字或连字符.
需要更多字符:
\d{2}[\s\d-]{5,}
Run Code Online (Sandbox Code Playgroud)
(两个数字和5个或更多的空格,连字符的数量),这将减少错误命中的数量.
这些将包括电话号码后面的额外空格,但结果可能会被修剪.
但是,我会删除连字符和空格,并计算剩余的数字,以将它们识别为电话号码,而不是修剪.
如果电话号码始终以0开头:
0\d[\s\d-]{5,}\d
Run Code Online (Sandbox Code Playgroud)
这以一个数字结束,因此在前面的示例中最后删除了空格.
添加以下进一步的示例:
\b[\s()\d-]{6,}\d\b
Run Code Online (Sandbox Code Playgroud)