我一直在使用下面的excel / google驱动器电子表格功能,它允许您获取网址,删除协议(例如http://),剥离www,并删除TLD之后的任何信息。功能是:
=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://中),它也会抛出错误。我已经尝试了几种方法来检查网址是否已经裸露,通过检查单元格是否包含:http://, https://, ftp://, www. etc..
但这看起来过于复杂和脆弱。
有更好的方法吗?
为了测试,我在这里制作了一个谷歌电子表格:https://docs.google.com/spreadsheets/d/1IVe-VqZtqBtyobBzVHBIm2WQYCvynKZonxK_uEZvXDc/edit#gid=0
答案 0 :(得分:2)
试试这个,
如果您有任何其他疑问,请评论
= IFERROR(IF(找到( “/”,A11)< 8,INDEX(SPLIT(A11, “//”),1,2),IF(FIND( “/”,A11)> 8 ,INDEX(SPLIT(A11, “//”),1,1),0)),A12)
答案 1 :(得分:1)
您可以在google工作表中的单个正则表达式函数中执行此操作:
=REGEXEXTRACT(A1,"^(?:https?:\/\/)?(?:www\.)?([^\/]+)")
或iferror,如果单元格为空白:
=IFERROR(REGEXEXTRACT(A1,"^(?:https?:\/\/)?(?:www\.)?([^\/]+)"))