去掉url在excel / google电子表格中

我一直在与下面的Excel /谷歌驱动器电子表格function,使您可以采取一个url,剥离协议(例如http://),去除www,并去除顶级域名后的任何信息。 function是:

=IF(ISERROR(FIND("//www.",A2)), MID(A2,FIND(":",A2,4)+3,FIND("/",A2,9)-FIND(":",A2,4)-3), MID(A2,FIND(":",A2,4)+7,FIND("/",A2,9)-FIND(":",A2,4)-7)) 

它工作的很好,但如果一个URL已经是裸露的,例如。 example.com函数抛出一个错误,如果URL是dosnt有一个尾部的斜线,或者在域名之前有一个斜杠(例如http://),它也会抛出一个错误。 我已经尝试了几种方法来检查url是否已经是空的,通过检查单元格是否包含: http://, https://, ftp://, www. etc.. http://, https://, ftp://, www. etc..但是这似乎过于复杂和脆弱。

有一个更好的方法吗 ?

为了testing我做了一个谷歌电子表格在这里: https : //docs.google.com/spreadsheets/d/1IVe-VqZtqBtyobBzVHBIm2WQYCvynKZonxK_uEZvXDc/edit#gid=0

您可以在Google表单中的一个正则expression式中执行此操作:

 =REGEXEXTRACT(A1,"^(?:https?:\/\/)?(?:www\.)?([^\/]+)") 

或者如果单元格为空,则使用iferror:

 =IFERROR(REGEXEXTRACT(A1,"^(?:https?:\/\/)?(?:www\.)?([^\/]+)")) 

试试这个,

评论你是否有其他疑问

= IFERROR(IF(find( “/”,A11)<8,INDEX(SPLIT(A11, “//”),1,2),IF(FIND( “/”,A11)> 8,INDEX(SPLIT( A11, “//”),1,1),0)),A12)