在未来,处理域名将变得复杂得多,新的TLD即将上线。假设.edu
是唯一的教育顶级域名将是错误的。
一个简单的方法来抓住刚域现在是:
"[email protected]"[/(@.+)$/, 1] # => "@harvard.edu"
将要处理的事情,如:
"[email protected]"[/(@.+)$/, 1] # => "@mail.harvard.edu"
如果你不想做@
,只是转移左括号正确的一个字符:
pattern = /@(.+)$/
"[email protected]"[pattern, 1] # => "harvard.edu"
"[email protected]"[pattern, 1] # => "mail.harvard.edu"
如果要规范域t Ø剥离子域,你可以这样做:
pattern = /(\w+\.\w+)$/
"harvard.edu"[pattern, 1] # => "harvard.edu"
"mail.harvard.edu"[pattern, 1] # => "harvard.edu"
,只有抓住了由单一.
分离的最后两个“单词”。
这是有点幼稚,因为非美域可以有一个国家代码,所以如果你需要处理那些你可以这样做:
pattern = /(\w+\.edu(?:\.\w+)?)$/
"harvard.edu"[pattern, 1] # => "harvard.edu"
"harvard.edu.cc"[pattern, 1] # => "harvard.edu.cc"
"mail.harvard.edu.cc"[pattern, 1] # => "harvard.edu.cc"
而且,至于是否应该之前做这做你确认了他们的地址后?做到这一点AFTER。为什么浪费CPU时间和磁盘空间处理无效地址?
您可以使用正则表达式来匹配模式,而不是对事物进行排序。当然,您可以使用Ruby根据您使用正则表达式所做的匹配对事物进行排序。 –
你写了什么代码? “关于您编写的代码问题的问题必须在问题本身中描述具体问题 - 并包含有效代码以再现问题本身。请参阅http://SSCCE.org以获取指导。” –