哪个公式从电子邮件地址(bob@example.com-> example.com)中提取域名?


8

我要使用哪个Google Spreadsheets公式从电子邮件地址获取域部分?

例如:bob@example.comexample.com

Answers:


4

我将使用以下公式来获取URL。

=IF(ISEMAIL(A2),
   REGEXEXTRACT(A2,"@(.+)"),
   IF(ISURL(A2),
     A2,
     IF(ISURL(REGEXEXTRACT(A2,"@(.+)")),
       REGEXEXTRACT(A2,"@(.+)"),
       "No valid entry"
     )
   )
 )

 Copy / Paste 
 =IF(ISEMAIL(A2),REGEXEXTRACT(A2,"@(.+)"),IF(ISURL(A2),A2,IF(ISURL(REGEXEXTRACT(A2,"@(.+)")),REGEXEXTRACT(A2,"@(.+)"),"No valid entry")))

讲解

A1已验证为电子邮件地址。如果为TRUE,则使用REGEXEXTRACT您构造的公式。如果电子邮件地址不是有效地址,则请验证URL。如果该URL证明不是有效的URL,则检查是否REGEX是有效的URL。显示文本没有有效的条目,没有IF语句是正确的。

屏幕截图

在此处输入图片说明

我为您创建了一个示例文件:从电子邮件地址获取域


1
如果您想要两者(或不介意同时拥有),则=split(A2, "@")在A3中放入bobA3和example.comA4。更加简洁。
韦恩·沃纳2014年

7

该公式将完成以下任务:

=regexextract(A1;"@(.*)")

如果未@找到,则显示原始值。

=regexextract功能(文档)执行正则表达式参数(@(.*)针对细胞的值)A1,并返回匹配组。


1
我不是REGEX专家(@Vidar是...。),但是(.*)太通用了。顺便说一句,如果找不到匹配项,它将引发错误。
Jacob Jan Tuinstra 2014年

为什么(.*)太通用?难道你不想要一切@吗?
Holloway 2014年

@Trengot我在想些符合"@([A-Za-z0-9-.]+)")
Jacob Jan Tuinstra 2014年


1
@JacobJanTuinstra该正则表达式不适用于所有域名,仅适用于ASCII。域名中可以包含Unicode字符,例如㯙㯜㯙㯟.net

3

如果您的电子邮件地址(bob@example.com)在A1中

=index(split(A1,"@"),0,2) = example.com

=index(split(A1,"@"),0,1) =鲍勃

您在@上进行拆分,然后使用索引从拆分中选择所需的列。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.