Ruby Regex从电子邮件地址中提取域名

3th*_*1ll 2 ruby regex email-validation

我没有真正的使用正则表达式的经验,只是说.我想用以下格式从电子邮件地址中提取域名.

richardc@mydomain.com以便正则表达式返回:mydomain

如果可能的话,解释它如何/为什么有效!干杯

Sab*_*san 7

这里捕获(...)组中的域名\1并用该捕获替换整个字符串,这仅在结尾处产生域名.

email = 'richardc@mydomain.com'
domain = email.gsub(/.+@([^.]+).+/, '\1')
# => mydomain
Run Code Online (Sandbox Code Playgroud)

.+指任何字符(除外\n).所以它基本匹配整个电子邮件字符串,并使用([^.]+)[除了点之外的任何东西] 捕获域名