正则表达式从文本块中提取 URL 站点名称?

正则表达式从文本块中提取 URL 站点名称?

我对正则表达式了解不多,我主要只是使用 RegExr 进行猜测和检查,并想出适合我需求的表达式。我使用 Tasker 在手机上制作了一个通知阅读器,我想使用正则表达式将 URL 替换为网站名称,例如:

“来自<​​person>的新消息:嘿,看看这个https://www.youtube.com/watch?=whatever”

我想将 URL 替换为“来自 youtube.com 的链接”为了让它听起来不那么烦人,特别是当有人发送一个非常长的链接时,比如来自亚马逊或 Facebook。

我相当确定 Tasker 可以利用正则表达式返回值,所以我想利用这一点从文本中提取 URL 并仅返回网站的名称,而不管发送的是什么 URL。

有人能帮我为此建立一个合适的表达吗?

谢谢。

答案1

好吧,我明白了。我使用了这个正则表达式:

(https?:\/\/([^\/ \n\r]*)((([^\. \n\r]*)\.?)*)[^ \n\r]*)

这是替换

(link from $2)

而且它运行得很好。它仍然无法从某些位置获取 URL,但大多数时候它都能正常工作,这几乎就是我想要的。如果您知道更优雅的解决方案,请告诉我,但目前这对我来说应该没问题。

答案2

您可以使用:

https?://([^/]+)\S*

或者

https?:\/\/([^\/]+)\S*

如果你不能选择分隔符

并替换为:(link from $1)

演示与说明

相关内容